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_username: root
|
||||||
mysql_root_password: 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
|
mysql_enabled_on_startup: yes
|
||||||
|
|
||||||
# update my.cnf. each time role is run? yes | no
|
# update my.cnf. each time role is run? yes | no
|
||||||
|
|||||||
@@ -24,3 +24,4 @@
|
|||||||
|
|
||||||
- name: Ensure MySQL is started and enabled on boot.
|
- name: Ensure MySQL is started and enabled on boot.
|
||||||
service: "name={{ mysql_daemon }} state=started enabled={{ mysql_enabled_on_startup }}"
|
service: "name={{ mysql_daemon }} state=started enabled={{ mysql_enabled_on_startup }}"
|
||||||
|
register: mysql_service_configuration
|
||||||
|
|||||||
@@ -4,21 +4,14 @@
|
|||||||
register: mysql_root_hosts
|
register: mysql_root_hosts
|
||||||
changed_when: false
|
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.
|
- name: Update MySQL root password for localhost root account.
|
||||||
shell: >
|
shell: >
|
||||||
mysql -u root -NBe
|
mysql -u root -NBe
|
||||||
'SET PASSWORD FOR "{{ mysql_root_username }}"@"{{ item }}" = PASSWORD("{{ mysql_root_password }}");'
|
'SET PASSWORD FOR "{{ mysql_root_username }}"@"{{ item }}" = PASSWORD("{{ mysql_root_password }}");'
|
||||||
with_items: mysql_root_hosts.stdout_lines
|
with_items: mysql_root_hosts.stdout_lines
|
||||||
|
when: mysql_service_configuration.changed or mysql_root_password_update
|
||||||
# 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
|
|
||||||
|
|
||||||
# Has to be after the root password assignment, for idempotency.
|
# Has to be after the root password assignment, for idempotency.
|
||||||
- name: Copy .my.cnf file with root password credentials.
|
- name: Copy .my.cnf file with root password credentials.
|
||||||
|
|||||||
Reference in New Issue
Block a user