Select Git revision
main.yml 2.09 KiB
---
# tasks file for mysql
- name: Assertions
assert:
that:
- ansible_os_family == 'Debian'
- ansible_distribution_release in mysql_version
- name: Get groups
getent:
database: group
- name: Preseed root password
when: mysql_root_password is defined
with_items:
- root_password
- root_password_again
debconf:
name: '{{ mysql_server_package }}'
question: 'mysql-server/{{ item }}'
vtype: password
value: '{{ mysql_root_password }}'
changed_when: False # Can't verify previous password therefore there's always
# a change, explicitly disable that.
- name: APT install
with_items:
- mysql-server
- mysql-client
- python-mysqldb
apt:
name: '{{ item }}'
state: present
update_cache: yes
cache_valid_time: 3600
- name: Reconfigure package in case root password was changed
changed_when: False
command: 'dpkg-reconfigure --frontend noninteractive {{ mysql_server_package }}'
- name: Allow MySQL access to the TLS cert and key
when: "'ssl-cert' in getent_group"
user:
append: yes
groups: ssl-cert
name: mysql
notify:
- Restart MySQL
- name: Alias mail
when: mysql_mail_alias is defined
lineinfile:
dest: /etc/aliases
create: True
line: 'mysql: {{ mysql_mail_alias }}'
regexp: 'mysql:'
state: present
- name: Add admin account
when: mysql_admin_password is defined
mysql_user:
name: admin
host: '%'
password: '{{ mysql_admin_password }}'
priv: '*.*:ALL,GRANT,REQUIRESSL'
login_password: '{{ mysql_root_password|default(omit) }}'
state: present
- name: Copy configuration templates