Ansible mysql_*-Module zeigen beim ersten Start einen Fehler an

Ansible mysql_*-Module zeigen beim ersten Start einen Fehler an

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

verwandte Informationen