--- # dependency for mysql_user and mysql_db - name: python-mysqldb is installed apt: name: python-mysqldb state: installed tags: - mysql - name: create a password for mysqladmin shell: perl -e 'print map{("a".."z","A".."Z",0..9)[int(rand(62))]}(1..16)' register: mysql_admin_password changed_when: false tags: - mysql - name: there is a mysqladmin user mysql_user: name: mysqladmin password: '{{ mysql_admin_password.stdout }}' priv: "*.*:ALL,GRANT" update_password: on_create state: present register: create_mysqladmin_user tags: - mysql - name: mysqladmin is the default user ini_file: dest: /root/.my.cnf mode: 0600 section: client option: '{{ item.option }}' value: '{{ item.value }}' with_items: - { option: 'user', value: 'mysqladmin' } - { option: password, value: '{{ mysql_admin_password.stdout }}' } when: create_mysqladmin_user.changed tags: - mysql - name: remove root user mysql_user: name: root host: "{{ item }}" config_file: /root/.my.cnf state: absent with_items: - "localhost" - "127.0.0.1" - "::1" - "{{ ansible_hostname }}" tags: - mysql