mirror of
https://github.com/aljazceru/ansible-role-mysql.git
synced 2025-12-19 11:44:20 +01:00
Issue #60: Restore idempotence.
This commit is contained in:
@@ -3,6 +3,9 @@ mysql_user_home: /root
|
||||
mysql_root_username: root
|
||||
mysql_root_password: root
|
||||
|
||||
# Set this to true to forcibly update the root password.
|
||||
mysql_root_password_update: false
|
||||
|
||||
mysql_enabled_on_startup: yes
|
||||
|
||||
# update my.cnf. each time role is run? yes | no
|
||||
|
||||
@@ -24,3 +24,4 @@
|
||||
|
||||
- name: Ensure MySQL is started and enabled on boot.
|
||||
service: "name={{ mysql_daemon }} state=started enabled={{ mysql_enabled_on_startup }}"
|
||||
register: mysql_service_configuration
|
||||
|
||||
@@ -4,21 +4,14 @@
|
||||
register: mysql_root_hosts
|
||||
changed_when: false
|
||||
|
||||
# TODO: This is currently not idempotent.
|
||||
# Note: We do not use mysql_user for this operation, as it doesn't always update
|
||||
# the root password correctly. See: https://goo.gl/MSOejW
|
||||
- name: Update MySQL root password for localhost root account.
|
||||
shell: >
|
||||
mysql -u root -NBe
|
||||
'SET PASSWORD FOR "{{ mysql_root_username }}"@"{{ item }}" = PASSWORD("{{ mysql_root_password }}");'
|
||||
with_items: mysql_root_hosts.stdout_lines
|
||||
|
||||
# The below task doesn't work in some instances for some users, at least with
|
||||
# certain versions of Ansible.
|
||||
# - name: Update MySQL root password for localhost root account.
|
||||
# mysql_user:
|
||||
# name: "{{ mysql_root_username }}"
|
||||
# host: "{{ item }}"
|
||||
# password: "{{ mysql_root_password }}"
|
||||
# with_items: mysql_root_hosts.stdout_lines
|
||||
when: mysql_service_configuration.changed or mysql_root_password_update
|
||||
|
||||
# Has to be after the root password assignment, for idempotency.
|
||||
- name: Copy .my.cnf file with root password credentials.
|
||||
|
||||
Reference in New Issue
Block a user