Mysql 5.7 on Ansible
Posted 9 years ago
- updated 9 years ago
mysql
ansible
- Ansible currently assumes root password will be blank on installation
- In Mysql 5.7 a temporary password is created that has to be reset before you can start using mysql
- You can't use
mysql_user ansible module as mysql warns that you must change it using a client that supports expired passwords
Find the temporary Password
- name: Find temporary password
shell: "echo `grep 'temporary.*root@localhost' /var/log/mysqld.log | sed 's/.*root@localhost: //'`"
register: mysql_root_password_temp
tags: register
Set the new password using the temporary password
- name: Set new password from temporary password
shell: 'mysql -e "SET PASSWORD = PASSWORD(''{{ mysql_root_password }}'');" --connect-expired-password -uroot -p"{{ mysql_root_password_temp.stdout }}"'
Notes
- To escape single quotes in yaml don't use
\' use ''
- You may want to delete .history afterwards as you are setting the password on the shell
- more