]> arthur.barton.de Git - AnsibleRoles.git/blob - roles/mysql-server/tasks/main.yml
7f0c12aad8727e8df3f45ab1c09b238e328daa70
[AnsibleRoles.git] / roles / mysql-server / tasks / main.yml
1 ---
2 # mysql-server tasks
3
4 - name: create LVM LV and file system for MySQL data
5   tags:
6     - mysql
7     - fs
8   include_role:
9     name: lvm-lv
10   vars:
11     lvm_vg: "{{ mysql_server_vg }}"
12     lvm_lv_name: "{{ mysql_server_lv_name }}"
13     lvm_lv_size: "{{ mysql_server_lv_size }}"
14     lvm_lv_mountpoint: "/var/lib/mysql"
15   when: mysql_server_vg|length > 0 and mysql_server_lv_name|length > 0
16
17 - name: install MySQL packages for client and server
18   tags:
19     - mysql
20     - mysqld
21     - packages
22   apt:
23     state: present
24     name: [
25       'mysql-client',
26       'mysql-server',
27       'mysqltuner',
28       'python3-pymysql',
29     ]
30
31 - name: ensure service "mysql" is enabled and started
32   tags:
33     - services
34     - mysql
35     - mysqld
36   service: >
37     enabled=yes
38     name=mysql
39     state=started
40
41 - name: setup MySQL "ansible" account
42   tags:
43     - mysql
44     - mysqld
45     - mysql-users
46   mysql_user: >
47     login_user={{ mysql_server_ansible_user }}
48     login_password={{ mysql_server_ansible_password }}
49     login_unix_socket="/var/run/mysqld/mysqld.sock"
50     check_implicit_admin=yes
51     host="localhost"
52     name=ansible
53     password={{ mysql_server_ansible_password }}
54     priv="*.*:ALL,GRANT"
55     state=present
56
57 - name: setup MySQL "root" account
58   tags:
59     - mysql
60     - mysqld
61     - mysql-users
62   mysql_user: >
63     login_user={{ mysql_server_ansible_user }}
64     login_password={{ mysql_server_ansible_password }}
65     host="{{ mysql_server_root_host }}"
66     name=root
67     password={{ mysql_server_root_password }}
68     priv="*.*:ALL,GRANT"
69     state=present
70
71 - name: Remove unwanted MySQL "root" accounts (1/2)
72   tags:
73     - mysql
74     - mysqld
75     - mysql-users
76   mysql_user: >
77     login_user={{ mysql_server_ansible_user }}
78     login_password={{ mysql_server_ansible_password }}
79     host={{ item }}
80     name=root
81     state=absent
82   with_items:
83     - "{{ ansible_hostname }}"
84     - "127.0.0.1"
85     - "::1"
86
87 - name: Remove unwanted MySQL "root" accounts (2/2)
88   tags:
89     - mysql
90     - mysqld
91     - mysql-users
92   mysql_user: >
93     login_user={{ mysql_server_ansible_user }}
94     login_password={{ mysql_server_ansible_password }}
95     host={{ item }}
96     name=root
97     state=absent
98   with_items:
99     - "localhost"
100   when: mysql_server_root_host != "localhost"