
Dies ist meine YML-Datei, die das System aktualisieren, den MySQL-Server installieren, die Bindung ändern und Schritte von „mysql_secure_installation“ ausführen soll.
---
# 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
Wenn ich dieses YML zum ersten Mal abspiele, zeigt mir Ansible den folgenden Fehler an:
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."}
Wenn ich die gleiche Datei ein zweites Mal abspiele, ist alles in Ordnung.
Was mache ich falsch? "python-pymysql", das für die Aufgabe "Testdatenbank entfernen" erforderlich ist, wurde einige Schritte zuvor installiert und es gab einen Neustart. Alles sollte funktionieren, tut es aber nicht!
Antwort1
Oh, die richtige Frage ist die Hälfte der Antwort :-) Ich habe die Aufgabe geändert und jetzt ist alles in Ordnung
- name: Install mysql
apt:
name:
- mysql-server
- python-pymysql
- python3-pymysql
- python-apt
- python3-apt
state: latest