main.yml 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. ---
  2. - name: gather os specific variables
  3. include_vars: "{{ item }}"
  4. with_first_found:
  5. - files:
  6. - "{{ ansible_distribution|lower | replace(' ', '_')}}-{{ ansible_architecture }}.yml"
  7. - "{{ ansible_distribution|lower }}-{{ ansible_distribution_major_version|lower|replace('/', '_') }}.yml"
  8. - "{{ ansible_distribution|lower }}-{{ ansible_distribution_release|lower }}.yml"
  9. - "{{ ansible_distribution|lower }}-{{ ansible_distribution_major_version|lower|replace('/', '_') }}.yml"
  10. - "{{ ansible_distribution|lower }}.yml"
  11. - "{{ ansible_os_family|lower }}.yml"
  12. - "{{ ansible_distribution|lower| replace(' ', '_')| replace('_\"_', '') }}.yml"
  13. paths:
  14. - ../vars
  15. tags:
  16. - facts
  17. - name: Install mariadb
  18. package:
  19. name: "{{ item }}"
  20. state: present
  21. failed_when: false
  22. loop: "{{ mariadb_package_info.pkgs }}"
  23. - name: pips for mysql/mariadb
  24. pip:
  25. name: PyMySQL
  26. vars:
  27. ansible_python_interpreter: /usr/bin/python3
  28. - name: copy my.cnf
  29. template:
  30. src: my.cnf.j2
  31. dest: /etc/my.cnf
  32. backup: yes
  33. - name: mariadb config hack
  34. shell: |
  35. if [ ! -d /etc/my.cnf.d ] && [ -d /etc/mysql ]; then
  36. ln -sf /etc/mysql /etc/my.cnf.d
  37. fi
  38. if [ -f /etc/mysql/mariadb.conf.d/50-server.cnf ] && grep -qP 'bind-address *= *127.0.0.1' /etc/mysql/mariadb.conf.d/50-server.cnf; then
  39. cp -vf /etc/mysql/mariadb.conf.d/50-server.cnf /etc/mysql/mariadb.conf.d/50-server.cnf.$(date +"%Y%m%d-%H%M%S").bak
  40. sed -i 's#bind-address *= *127.0.0.1#bind-address = 0.0.0.0#' /etc/mysql/mariadb.conf.d/50-server.cnf
  41. fi
  42. systemctl restart mariadb
  43. args:
  44. executable: /bin/bash
  45. - name: start mariadb
  46. systemd:
  47. name: mariadb
  48. enabled: yes
  49. state: started
  50. - name: Change root password
  51. mysql_user:
  52. login_unix_socket: "{{ login_unix_socket }}"
  53. login_user: "{{ db_user }}"
  54. login_port: "{{ db_port | default(3306) }}"
  55. login_password: "{{ db_password }}"
  56. password: "{{ db_password }}"
  57. name: "{{ db_user }}"
  58. priv: '*.*:ALL,GRANT'
  59. host: "{{ item }}"
  60. check_implicit_admin: true
  61. loop:
  62. - "localhost"
  63. - "%"
  64. - "::1"
  65. - "127.0.0.1"
  66. vars:
  67. ansible_python_interpreter: /usr/bin/python3
  68. - name: Remove all anonymous user accounts
  69. mysql_user:
  70. name: ''
  71. host_all: yes
  72. state: absent
  73. login_user: "{{ db_user }}"
  74. login_password: "{{ db_password }}"
  75. - name: Remove test database
  76. mysql_db:
  77. name: test
  78. state: absent
  79. login_user: "{{ db_user }}"
  80. login_password: "{{ db_password }}"
  81. - when: groups['mariadb_ha_nodes'] | length > 1
  82. include_tasks: 05ha.yml