Ваше сообщение об ошибке дает подсказку:
"msg": "unable to connect to database, check login_user and login_password are correct or /root/.my.cnf
Попробуйте следующее:
- name: Setting up root credentials
mysql_user:
name: root
password: "{{ mysql_root_password }}"
login_user: root
login_password: "{{mysql_root_password}}"
host: localhost
login_unix_socket: /var/lib/mysql/mysql.sock
priv: '*.*:ALL,GRANT'
check_implicit_admin: true
state: present
В приведенном ниже URL-адресе есть несколько хороших примеров, особенно для работы с функцией нового пароля с истечением срока действия в версии 5 .7 и далее.
Особенно эта часть и далее ...
- name: Detect and properly set root password
stat:
path: /root/.my.cnf
register: r
- mysql_user:
name: root
password: "{{ mysql_root_password }}"
when: r.stat.exists==True
- name: Set new password from temporary password
shell: 'mysql -e "SET PASSWORD = PASSWORD(''{{ mysql_root_password }}'');" --connect-expired-password -uroot -p"{{ tmp_root_password.stdout }}"'
when: r.stat.exists==False
# Now that the root password is set to the specified, make it default for the client.
- name: Copy my.cnf
template:
src: root_my.cnf.j2
dest: /root/.my.cnf
force: yes
См. Полный исходный код здесь: Обработка mysql_secure_installation в Ansible