-
Notifications
You must be signed in to change notification settings - Fork 0
/
playbook-init.yml
160 lines (135 loc) · 4.95 KB
/
playbook-init.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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
---
- hosts: all
become: yes
gather_facts: yes
tasks:
- name: cloud-init | Create dirs
file: path={{ item }} state=directory owner=ssm group=ssm
with_items:
- /opt/prometheus/data
- /opt/consul-data
- /srv/collect_info
- name: NGINX | Disable daemon
lineinfile:
dest: /etc/nginx/nginx.conf
line: 'daemon off;'
- name: NGINX | Disable password-page
replace:
dest: /etc/nginx/conf.d/ssm.conf
regexp: 'setup_type ovf-ami'
replace: 'setup_type docker'
- name: SSM | Fix nginx config
replace:
dest: /etc/nginx/nginx.conf
regexp: '^(\s*)listen'
replace: '\1#listen'
# https://github.com/geerlingguy/drupal-vm/issues/1497
# https://docs.docker.com/engine/userguide/storagedriver/overlayfs-driver/#limitations-on-overlayfs-compatibility
- name: SSM | Run workaround for overlayfs
command: find /var/lib/mysql -type f -exec touch {} \;
- name: Grafana | Enable gzip
community.general.ini_file:
path: /etc/grafana/grafana.ini
section: server
option: enable_gzip
value: true
- name: MariaDB | Create /var/lib/mysql-files
ansible.builtin.file:
path: /var/lib/mysql-files
state: directory
owner: mysql
group: mysql
mode: '0440'
- name: MariaDB | Prepare MariaDB
shell: rm -f /etc/my.cnf.d/auth_gssapi.cnf && rm -rf /var/lib/mysql/*
- name: MariaDB | Add includedir dir
ansible.builtin.lineinfile:
dest: /etc/my.cnf
line: '!includedir /var/lib/mysql'
- name: MariaDB | Copy page.cnf
ansible.builtin.copy:
src: /etc/my.cnf.d/page.cnf
dest: /var/lib/mysql/page.cnf
owner: mysql
group: mysql
mode: '0440'
- name: MariaDB | Remove page.cnf
ansible.builtin.file:
path: /etc/my.cnf.d/page.cnf
state: absent
- name: MariaDB | Initialize MariaDB
shell: /usr/bin/mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
- name: SSM | Start services
shell: ON_SSM_SERVER_SETUP=1 supervisord -c /etc/supervisord.conf &
- name: SSM | Wait for mysqld start
wait_for:
path: /var/lib/mysql/mysql.sock
state: present
delay: 30
timeout: 60
- name: qan-api | Import MySQL database
community.mysql.mysql_db:
login_unix_socket: /var/lib/mysql/mysql.sock
name: ssm
state: import
target: /usr/share/ssm-qan-api/schema/ssm.sql
- name: qan-api | Create MySQL user for Grafana
community.mysql.mysql_user:
login_unix_socket: /var/lib/mysql/mysql.sock
name: grafana
host: localhost
password: '*58324E2D77A9BBFD9DD1E904649697615FE74649'
priv: 'ssm.*:SELECT'
encrypted: yes
state: present
- name: SSM | Wait for dashboards
wait_for:
path: /var/lib/grafana/PERCONA_DASHBOARDS_VERSION
state: present
- name: SSM | Create ssm-update dirs
file: path={{ item }} state=directory
with_items:
- /srv/update
- name: SSM | Delete the anonymous MySQL user
community.mysql.mysql_user:
login_unix_socket: /var/lib/mysql/mysql.sock
name: ''
host: buildkitsandbox
state: absent
- name: SSM | Stop services
shell: supervisorctl shutdown
- name: SSM | Remove Python Modules
pip:
name:
- PyMySQL
executable: pip3
state: absent
- name: SSM | Remove OS tools
shell: microdnf -y remove python3-pip yum-utils
- name: SSM | Cleanup yum cache
shell: microdnf clean all
- name: SSM | Cleanup logs
file: path={{ item }} state=absent
with_items:
- /var/log/consul.log
- /var/log/createdb.log
- /var/log/cron.log
- /var/log/dashboard-upgrade.log
- /var/log/mysql.log
- /var/log/nginx.log
- /var/log/node_exporter.log
- /var/log/prometheus.log
- /var/log/qan-api.log
- /var/log/yum.log
- /var/log/grafana/grafana.log
- /var/log/supervisor/supervisord.log
- /var/log/ssm-manage.log
- /opt/consul-data/*
- /opt/prometheus/data
- /opt/consul-data
- /tmp/RPMS
- name: cloud-init | Create dirs
file: path={{ item }} state=directory owner=ssm group=ssm
with_items:
- /opt/prometheus/data
- /opt/consul-data