Ansible mysql_* 모듈은 처음 시작 시 오류를 표시합니다.

Ansible mysql_* 모듈은 처음 시작 시 오류를 표시합니다.

다음은 시스템을 업데이트하고, 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."}

동일한 파일을 두 번째로 재생하면 모든 것이 잘 작동합니다.

내가 뭘 잘못했나요? "테스트 데이터베이스 삭제" 작업에 필요한 "python-pymysql"은 이전 단계에서 설치되었으며 재부팅하면 모든 것이 작동해야 하지만 그렇지 않습니다!

답변1

아, 올바른 질문은 답의 절반입니다. :-) 작업을 수정했는데 이제 모든 것이 잘 작동합니다.

  - name: Install mysql
  apt:
    name:
    - mysql-server
    - python-pymysql
    - python3-pymysql
    - python-apt
    - python3-apt
  state: latest

관련 정보