-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathmain.yml
91 lines (81 loc) · 2.17 KB
/
main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
---
# These tasks install and configure a MySQL server
- name: Install mysql packages
apt:
state: present
pkg:
- mariadb-server
- python3-mysqldb
- mycli
- name: Copy in MySQL config
copy:
src: my.cnf
dest: /root/.my.cnf
mode: 0644
owner: root
group: root
- name: Create directory for systemd mysql settings
file:
path: /etc/systemd/system/mysql.service.d/
state: directory
group: root
owner: root
mode: 0755
- name: Update systemd so mysql has bigger limits
copy:
src: mysql.override.cnf
dest: /etc/systemd/system/mysql.service.d/override.conf
mode: 0644
group: root
owner: root
notify: Restart mysql
- name: Add mysql config snippet to increase limits
copy:
src: mysql.domjudge.cnf
dest: /etc/mysql/mariadb.conf.d/zz_domjudge.cnf
mode: 0644
owner: root
group: root
notify: Restart mysql
- name: Make sure mysql is restarted
meta: flush_handlers
- name: Create directory to store scripts & database dumps
file:
path: /home/domjudge/{{ item }}
owner: domjudge
group: domjudge
state: directory
mode: 0755
loop:
- db-dumps
- bin
- name: Copy database dump/load scripts
copy:
src: "{{ item }}"
dest: /home/domjudge/bin/{{ item }}
owner: domjudge
group: domjudge
mode: 0755
loop:
- load-db
- dump-db
- name: create mysql user for for DOMjudge database administration
mysql_user:
name: domjudge_dba
host: '{{ item }}'
password: "{{ DBA_PASSWORD }}"
append_privs: true
priv: 'domjudge.*:ALL,GRANT/*.*:CREATE USER,RELOAD'
state: present
when: host_type == 'domserver' and DBA_PASSWORD is defined
loop: "{{ groups['domserver'] | map('extract', hostvars, 'ansible_host') + [DOMSERVER_IP] }}"
- name: create mysql user for for DOMjudge when we are doing loadbalancing
mysql_user:
name: domjudge
host: '{{ item }}'
password: "{{ DB_PASSWORD }}"
append_privs: true
priv: 'domjudge.*:SELECT,INSERT,UPDATE,DELETE'
state: present
when: host_type == 'domserver' and DOMSERVER_LOADBALANCING
loop: "{{ groups['domserver'] | map('extract', hostvars, 'ansible_host') + [DOMSERVER_IP] }}"