カテゴリー
Linux

【Ansible】リポジトリ指定してインストールする MariaDB と phpMyAdmin のプレイブック作成メモ

を作成するにあたって覚えておきたいことのメモを残します♪

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 に挑戦予定です♪

以上です。

コメントを残す