CentOS 8 の MariaDB 設定はこちらを参照して下さい。
MariaDB を Ansible で設定します。DB やユーザーの設定は WordPress を想定しています。
普段、MariaDB を手動で設定する際、①インストール、② mysql_secure_installation、③ DB 作成、④ユーザー作成を行っています。他のサイトでよく見る文字コードの設定などは、特に実施しなくとも問題になったことがないので、やっていません。
MariaDB の Ansible 化にあたって特に面倒だと思っていたのが mysql_secure_installation ですが、インストール直後の状態を見てみると、匿名ユーザーもなく、テスト DB もない状態でした。つまり、mysql_secure_installation でやったいたことは、実質 root ユーザーのパスワード設定のみでした。このrootユーザーのパスワード設定も、「check_implicit_admin: yes」にて対応可能です( MariaDB はインストール直後はパスワードが空)。
name: dnf -y install mariadb-server
dnf:
name: "{{item}}"
state: latest
loop:
- "mariadb-server"
- "python3-mysql"
- name: systemctl enable --now mariadb.service
systemd:
name: mariadb.service
state: started
enabled: yes
- name: mariadb root user password setting
mysql_user:
login_user: "{{mariadb_root_user}}"
login_password: "{{mariadb_root_pass}}"
name: "{{mariadb_root_user}}"
password: "{{mariadb_root_pass}}"
state: present
check_implicit_admin: yes
- name: create wordpress database
mysql_db:
login_user: "{{mariadb_root_user}}"
login_password: "{{mariadb_root_pass}}"
name: "{{mariadb_wordpress_db}}"
state: present
- name: create user for wordpress database
mysql_user:
login_user: "{{mariadb_root_user}}"
login_password: "{{mariadb_root_pass}}"
name: "{{mariadb_wordpress_user}}"
password: "{{mariadb_wordpress_pass}}"
priv: "{{mariadb_wordpress_db}}.*:ALL"
state: present
尚、python3-mysql がないと Ansible の mysql モジュールが動きませんね。
CentOS 8 MariaDB を Ansible で設定