以下は、システムを更新し、mysql-serverをインストールし、バインディングを変更し、「mysql_secure_installation」の手順を実行する必要があるymlファイルです。
---
# tasks file for deploy_db
- name: Update repos
apt:
name: "*"
state: latest
update_cache: yes
- name: Install mysql
apt:
name:
- mysql-server
- python-pymysql
- python-apt
state: latest
- name: Autostart mysql
service:
name: mysql
enabled: yes
- name: Change mysql default binding
replace:
path: /etc/mysql/mysql.conf.d/mysqld.cnf
regexp: '127.0.0.1'
replace: '0.0.0.0'
- name: Reboot after initial update
reboot:
- name: Remove the test database
mysql_db:
login_unix_socket: /var/run/mysqld/mysqld.sock
name: test
state: absent
- name: Remove anonymous user
mysql_user:
login_unix_socket: /var/run/mysqld/mysqld.sock
name: ''
state: absent
この yml を初めて使用すると、Ansible にエラーが表示されます。
TASK [deploy_db : Remove the test database] ********************************************************************************************************************
fatal: [db]: FAILED! => {"changed": false, "msg": "The PyMySQL (Python 2.7 and Python 3.X) or MySQL-python (Python 2.X) module is required."}
同じファイルを2番目に再生すると、すべてがうまく機能します。
私は何が間違っていましたか? 「テストデータベースの削除」操作に必要な「python-pymysql」は前の手順でインストールされており、再起動するとすべてが機能するはずですが、そうではありません!
答え1
ああ、正しい質問は答えの半分です。 :-) タスクを修正しましたが、今はすべてうまくいきます。
- name: Install mysql
apt:
name:
- mysql-server
- python-pymysql
- python3-pymysql
- python-apt
- python3-apt
state: latest