を作成するにあたって覚えておきたいことのメモを残します♪
mysql_secure_installation と同等の処理
mysql_secure_installation の代替となる Ansible モジュールは存在しないため、次のページを参考に、行っている内容を再現しました。
確かめるために使ったコマンド
その際、確認のために次のコマンド、SQL 文を使用していました。
mysql -u root -p
show databases; select Host, User, Password from mysql.user;
mysql_secure_installation を Ansible プレイブックで再現した内容
- リモートからの root ログインを禁止するために、自ドメインを知る必要がある。そのために、hostname コマンドの結果を command モジュールを使用して得て、自ドメインからのアクセスを削除した。これによって、’localhost’, ‘127.0.0.1’, ‘::1’ 以外からのアクセスを受け付けないようにした。
- PostgreSQL と異なり、MariaDB はパスワード設定なしのユーザに、パスワードを指定してログインしようとするとエラーとなる。
よって、/root/.my.conf を作成した。これで初回でもそれ以降でも Ansible の mysql モジュールで login_password の指定が不要となり、冪等性も保つことがでた。
---
# mysql_secure_installation
# Enter current password for root (enter for none):
# Set root password? [Y/n] Y
# New password: vagrant
# Re-enter new password: vagrant
# Remove anonymous users? [Y/n] Y
# Disallow root login remotely? [Y/n] Y
# Remove test database and access to it? [Y/n] Y
# Reload privilege tables now? [Y/n] Y
- name: Install python mysqldb module
yum:
name: MySQL-python
state: latest
- name: Set root password
mysql_user:
name: root
host_all: yes
password: "{{ mariadb_root_password }}"
notify: Restart mariadb
- name: Create /root/.my.cnf
template:
src: .my.cnf.j2
dest: /root/.my.cnf
owner: root
group: root
mode: 0600
notify: Restart mariadb
- name: Remove anonymous users
mysql_user:
name: ''
host_all: yes
state: absent
notify: Restart mariadb
- name: Get hostname
command: hostname
register: hostname
changed_when: false
failed_when: false
- name: Disallow root login remotely
mysql_user:
name: root
host: "{{ hostname.stdout }}"
state: absent
notify: Restart mariadb
- name: Remove test database and access to it
mysql_db:
name: test
state: absent
notify: Restart mariadb
[client]
user=root
password={{ mariadb_root_password }}
phpMyAdmin について
- phpMyAdmin のインストールのために、事前に php-devel のインストールは不要だが、php パッケージのインストールは必要だった。
phpMyAdmin の httpd 設定ファイルの修正は、patch モジュールを使って施すようにしました。このとき、差分のパッチを作るコマンドは次を使いました。
cd /etc/httpd/conf.d/ diff -up phpMyAdmin.conf.org phpMyAdmin.conf > phpMyAdmin.conf.patch
設定ファイルの修正内容は、次のページを参考にしました。
おわりに
LEMP 環境のプレイブックを書きたいと考えています。今回は、MariaDB となります。
次は PHP 7 と Nginx に挑戦予定です♪
以上です。
