mysql.yml 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. - name: 'Install MySQL server related packages'
  2. apt:
  3. pkg: '{{ item }}'
  4. state: 'present'
  5. with_items:
  6. - 'mysql-server'
  7. - 'mysql-client'
  8. when: with_mysql
  9. tags:
  10. - 'mysql'
  11. - 'sql'
  12. - name: 'Install MariaDB server related packages'
  13. apt:
  14. pkg: '{{ item }}'
  15. state: 'present'
  16. with_items:
  17. - 'mariadb-server'
  18. - 'mariadb-client'
  19. when: with_mariadb
  20. tags:
  21. - 'mysql'
  22. - 'sql'
  23. - name: 'Install MySQL or MariaDB backup related packages (automysqlbackup)'
  24. apt:
  25. pkg: 'automysqlbackup'
  26. state: 'present'
  27. when: with_mysql_backup
  28. tags:
  29. - 'mysql'
  30. - 'sql'
  31. - name: 'Fix automysqlbackup to handle events properly'
  32. lineinfile:
  33. dest: '/usr/sbin/automysqlbackup'
  34. regexp: '^OPT='
  35. line: 'OPT="--quote-names --events" # OPT string for use with mysqldump ( see man mysqldump )'
  36. when: with_mysql_backup
  37. tags:
  38. - 'mysql'
  39. - 'sql'
  40. - name: 'Change MySQL or MariaDB root default password'
  41. raw: if ! echo "SELECT VERSION();" | mysql -u root --password='{{ mysql_root_password }}' >/dev/null 2>&1 ; then echo "UPDATE mysql.user SET Password=PASSWORD('{{ mysql_root_password }}') WHERE User IN ('', 'root'); FLUSH PRIVILEGES;" | mysql --defaults-file=/etc/mysql/debian.cnf ; fi
  42. changed_when: False
  43. when: mysql_root_password != ''
  44. tags:
  45. - 'mysql'
  46. - 'sql'
  47. - name: 'Add MySQL or MariaDB admin account'
  48. raw: if ! echo "SELECT VERSION();" | mysql -u admin --password='{{ mysql_admin_password }}' >/dev/null 2>&1 ; then echo "CREATE USER 'admin'@'localhost' IDENTIFIED BY '{{ mysql_admin_password }}'; GRANT ALL PRIVILEGES ON * . * TO 'admin'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;" | mysql --defaults-file=/etc/mysql/debian.cnf ; fi
  49. changed_when: False
  50. when: mysql_admin_password != ''
  51. tags:
  52. - 'mysql'
  53. - 'sql'
  54. - name: 'Ensure MySQL or MariaDB is running'
  55. service:
  56. name: mysql
  57. state: started
  58. # vim: ft=yaml.ansible