]> arthur.barton.de Git - AnsibleRoles.git/blob - roles/mysql-server/tasks/main.yml
mysql-server: Add "mysqld" tag
[AnsibleRoles.git] / roles / mysql-server / tasks / main.yml
1 ---
2 # mysql-server tasks
3
4 - name: check if MySQL data already exists
5   tags:
6     - mysql
7     - fs
8   shell: test -d /var/lib/mysql/mysql
9   ignore_errors: yes
10   register: mysql_server_installed
11   changed_when: false
12
13 - name: setup LVM volume "mysql" for MySQL
14   tags:
15     - mysql
16     - partition
17     - lvm
18     - fs
19   lvol: >
20     lv=mysql
21     size=10g
22     vg={{ mysql_server_vg }}
23   when: mysql_server_vg != "" and mysql_server_installed.rc != 0
24
25 - name: create ext4 filesystem on MySQL partition "mysql"
26   tags:
27     - mysql
28     - fs
29   filesystem: >
30     dev=/dev/{{ mysql_server_vg }}/mysql
31     fstype=ext4
32     opts="-L mysql"
33   when: mysql_server_vg != "" and mysql_server_installed.rc != 0
34
35 - name: create mount point "/var/lib/mysql"
36   tags:
37     - mysql
38     - fs
39   file: >
40     path=/var/lib/mysql
41     state=directory
42   when: mysql_server_vg != "" and mysql_server_installed.rc != 0
43
44 - name: configure and mount MySQL partition "mysql"
45   tags:
46     - mysql
47     - fs
48     - mount
49   mount: >
50     fstype=ext4
51     name=/var/lib/mysql
52     src=/dev/{{ mysql_server_vg }}/mysql
53     state=mounted
54     opts=rw,errors=remount-ro,noatime
55     passno=2
56   when: mysql_server_vg != "" and mysql_server_installed.rc != 0
57
58 - name: install MySQL packages for client and server
59   tags:
60     - mysql
61     - mysqld
62     - packages
63   apt: >
64     state=installed
65     name={{ item }}
66   with_items:
67     - mysql-client
68     - mysql-server
69     - mysqltuner
70     - python-mysqldb
71
72 - name: ensure service "mysql" is enabled and running
73   tags:
74     - services
75     - mysql
76     - mysqld
77   service: >
78     enabled=yes
79     name=mysql
80     state=running
81
82 - name: setup MySQL "ansible" account
83   tags:
84     - mysql
85     - mysqld
86     - mysql-users
87   mysql_user: >
88     login_user={{ mysql_server_ansible_user }}
89     login_password={{ mysql_server_ansible_password }}
90     check_implicit_admin=yes
91     host="localhost"
92     name=ansible
93     password={{ mysql_server_ansible_password }}
94     priv="*.*:ALL,GRANT"
95     state=present
96
97 - name: setup MySQL "root" account
98   tags:
99     - mysql
100     - mysqld
101     - mysql-users
102   mysql_user: >
103     login_user={{ mysql_server_ansible_user }}
104     login_password={{ mysql_server_ansible_password }}
105     host="{{ mysql_server_root_host }}"
106     name=root
107     password={{ mysql_server_root_password }}
108     priv="*.*:ALL,GRANT"
109     state=present
110
111 - name: Remove unwanted MySQL "root" accounts (1/2)
112   tags:
113     - mysql
114     - mysqld
115     - mysql-users
116   mysql_user: >
117     login_user={{ mysql_server_ansible_user }}
118     login_password={{ mysql_server_ansible_password }}
119     host={{ item }}
120     name=root
121     state=absent
122   with_items:
123     - "{{ ansible_hostname }}"
124     - "127.0.0.1"
125     - "::1"
126
127 - name: Remove unwanted MySQL "root" accounts (2/2)
128   tags:
129     - mysql
130     - mysqld
131     - mysql-users
132   mysql_user: >
133     login_user={{ mysql_server_ansible_user }}
134     login_password={{ mysql_server_ansible_password }}
135     host={{ item }}
136     name=root
137     state=absent
138   with_items:
139     - "localhost"
140   when: mysql_server_root_host != "localhost"