
이것은 시스템을 업데이트하고, 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