Skip to content

Commit bae1c2c

Browse files
committed
Tag all Ansible tasks
This allows skipping e.g., git repo cloning in order to test things quicker.
1 parent de64fb7 commit bae1c2c

File tree

1 file changed

+194
-176
lines changed

1 file changed

+194
-176
lines changed

matplotlib.org.yml

Lines changed: 194 additions & 176 deletions
Original file line numberDiff line numberDiff line change
@@ -19,198 +19,216 @@
1919
tasks:
2020
# Installation tasks
2121
# ##################
22-
- name: Enable copr
23-
ansible.builtin.dnf:
24-
name: "dnf-command(copr)"
25-
state: present
26-
- name: Enable caddy copr
27-
community.general.copr:
28-
name: "@caddy/caddy"
29-
state: enabled
30-
31-
- name: Install server maintenance
32-
ansible.builtin.dnf:
33-
name: "fail2ban"
34-
state: present
35-
36-
- name: Install web server requirements
37-
ansible.builtin.dnf:
38-
name:
39-
- caddy
40-
- git
41-
- mailcap
42-
- python3-aiohttp
43-
state: present
44-
45-
- name: Install server monitoring tools
46-
ansible.builtin.dnf:
47-
name:
48-
- golang-github-prometheus
49-
- golang-github-prometheus-alertmanager
50-
- golang-github-prometheus-node-exporter
51-
- grafana
52-
# Remove this when Loki is packaged.
53-
- podman
54-
state: present
22+
- name: Install system requirements
23+
tags: packages
24+
block:
25+
- name: Enable copr
26+
ansible.builtin.dnf:
27+
name: "dnf-command(copr)"
28+
state: present
29+
- name: Enable caddy copr
30+
community.general.copr:
31+
name: "@caddy/caddy"
32+
state: enabled
33+
34+
- name: Install server maintenance
35+
ansible.builtin.dnf:
36+
name: "fail2ban"
37+
state: present
38+
39+
- name: Install web server requirements
40+
ansible.builtin.dnf:
41+
name:
42+
- caddy
43+
- git
44+
- mailcap
45+
- python3-aiohttp
46+
state: present
47+
48+
- name: Install server monitoring tools
49+
ansible.builtin.dnf:
50+
name:
51+
- golang-github-prometheus
52+
- golang-github-prometheus-alertmanager
53+
- golang-github-prometheus-node-exporter
54+
- grafana
55+
# Remove this when Loki is packaged.
56+
- podman
57+
state: present
5558

5659
# Firewall setup
5760
# ##############
58-
- name: Enable firewall
59-
ansible.builtin.systemd:
60-
name: firewalld.service
61-
enabled: true
62-
state: started
63-
64-
- name: Allow SSH on firewall
65-
ansible.posix.firewalld:
66-
service: ssh
67-
permanent: true
68-
immediate: true
69-
offline: true
70-
state: enabled
71-
72-
- name: Allow HTTP on firewall
73-
ansible.posix.firewalld:
74-
service: http
75-
permanent: true
76-
immediate: true
77-
offline: true
78-
state: enabled
79-
80-
- name: Allow HTTPS on firewall
81-
ansible.posix.firewalld:
82-
service: https
83-
permanent: true
84-
immediate: true
85-
offline: true
86-
state: enabled
61+
- name: Setup firewall
62+
tags: firewal
63+
block:
64+
- name: Enable firewall
65+
ansible.builtin.systemd:
66+
name: firewalld.service
67+
enabled: true
68+
state: started
69+
70+
- name: Allow SSH on firewall
71+
ansible.posix.firewalld:
72+
service: ssh
73+
permanent: true
74+
immediate: true
75+
offline: true
76+
state: enabled
77+
78+
- name: Allow HTTP on firewall
79+
ansible.posix.firewalld:
80+
service: http
81+
permanent: true
82+
immediate: true
83+
offline: true
84+
state: enabled
85+
86+
- name: Allow HTTPS on firewall
87+
ansible.posix.firewalld:
88+
service: https
89+
permanent: true
90+
immediate: true
91+
offline: true
92+
state: enabled
8793

8894
# Prepare and clone Git repositories
8995
# ##################################
90-
- name: Create Git repository directories
91-
ansible.builtin.file:
92-
path: "/usr/share/caddy/{{ item }}"
93-
state: directory
94-
mode: 0755
95-
owner: caddy
96-
group: caddy
97-
loop: "{{ repos }}"
98-
99-
- name: Clone Git repositories
100-
become: true
101-
become_user: caddy
102-
ansible.builtin.git:
103-
repo: "https://github.com/matplotlib/{{ item }}"
104-
dest: "/usr/share/caddy/{{ item }}"
105-
version: gh-pages
106-
loop: "{{ repos }}"
96+
- name: Setup Git repositories
97+
tags: git
98+
block:
99+
- name: Create Git repository directories
100+
ansible.builtin.file:
101+
path: "/usr/share/caddy/{{ item }}"
102+
state: directory
103+
mode: 0755
104+
owner: caddy
105+
group: caddy
106+
loop: "{{ repos }}"
107+
108+
- name: Clone Git repositories
109+
become: true
110+
become_user: caddy
111+
ansible.builtin.git:
112+
repo: "https://github.com/matplotlib/{{ item }}"
113+
dest: "/usr/share/caddy/{{ item }}"
114+
version: gh-pages
115+
loop: "{{ repos }}"
107116

108117
# Caddy server setup
109118
# ##################
110-
- name: Configure Caddy
111-
ansible.builtin.copy:
112-
src: "{{playbook_dir}}/caddy/Caddyfile"
113-
dest: /etc/caddy/Caddyfile
114-
notify: Reload Caddy
115-
116-
- name: Configure Caddy system service
117-
ansible.builtin.file:
118-
path: /etc/systemd/system/caddy.service.d
119-
state: directory
120-
mode: 0755
121-
- name: Configure Caddy system service
122-
ansible.builtin.copy:
123-
src: "{{playbook_dir}}/caddy/caddy.service.override"
124-
dest: /etc/systemd/system/caddy.service.d/override.conf
125-
notify:
126-
- Reload systemd
127-
- Restart Caddy
128-
129-
- name: Configure Caddy TLS certificate directory
130-
ansible.builtin.file:
131-
path: /etc/caddy/tls
132-
state: directory
133-
mode: 0755
134-
owner: caddy
135-
group: caddy
136-
- name: Configure Caddy TLS certificates
137-
ansible.builtin.copy:
138-
src: tls-cert.pem
139-
dest: /etc/caddy/tls/cert.pem
140-
mode: 0640
141-
owner: caddy
142-
group: caddy
143-
notify:
144-
- Reload Caddy
145-
- name: Configure Caddy TLS certificates
146-
ansible.builtin.copy:
147-
src: tls-privkey.pem
148-
dest: /etc/caddy/tls/privkey.pem
149-
mode: 0640
150-
owner: caddy
151-
group: caddy
152-
notify:
153-
- Reload Caddy
154-
155-
- name: Enable Caddy service
156-
ansible.builtin.systemd:
157-
name: caddy.service
158-
enabled: true
159-
state: started
119+
- name: Caddy setup
120+
tags: caddy
121+
block:
122+
- name: Configure Caddy
123+
ansible.builtin.copy:
124+
src: "{{playbook_dir}}/caddy/Caddyfile"
125+
dest: /etc/caddy/Caddyfile
126+
notify: Reload Caddy
127+
128+
- name: Configure Caddy system service
129+
ansible.builtin.file:
130+
path: /etc/systemd/system/caddy.service.d
131+
state: directory
132+
mode: 0755
133+
- name: Configure Caddy system service
134+
ansible.builtin.copy:
135+
src: "{{playbook_dir}}/caddy/caddy.service.override"
136+
dest: /etc/systemd/system/caddy.service.d/override.conf
137+
notify:
138+
- Reload systemd
139+
- Restart Caddy
140+
141+
- name: Configure Caddy TLS certificate directory
142+
ansible.builtin.file:
143+
path: /etc/caddy/tls
144+
state: directory
145+
mode: 0755
146+
owner: caddy
147+
group: caddy
148+
- name: Configure Caddy TLS certificates
149+
ansible.builtin.copy:
150+
src: tls-cert.pem
151+
dest: /etc/caddy/tls/cert.pem
152+
mode: 0640
153+
owner: caddy
154+
group: caddy
155+
notify:
156+
- Reload Caddy
157+
- name: Configure Caddy TLS certificates
158+
ansible.builtin.copy:
159+
src: tls-privkey.pem
160+
dest: /etc/caddy/tls/privkey.pem
161+
mode: 0640
162+
owner: caddy
163+
group: caddy
164+
notify:
165+
- Reload Caddy
166+
167+
- name: Enable Caddy service
168+
ansible.builtin.systemd:
169+
name: caddy.service
170+
enabled: true
171+
state: started
160172

161173
# Webhook setup
162174
# #############
163-
- name: Install webhook
164-
ansible.builtin.copy:
165-
src: "{{playbook_dir}}/webhook/webhook.py"
166-
dest: /usr/bin/webhook.py
167-
mode: 0755
168-
notify: Restart webhook
169-
170-
- name: Configure webhook system service
171-
ansible.builtin.copy:
172-
src: "{{playbook_dir}}/webhook/webhook.service"
173-
dest: /etc/systemd/system/webhook.service
174-
mode: 0644
175-
notify:
176-
- Reload systemd
177-
- Restart webhook
178-
179-
- name: Configure webhook secrets
180-
ansible.builtin.template:
181-
src: webhook.env.j2
182-
dest: /etc/caddy/webhook.env
183-
mode: 0644
184-
notify:
185-
- Restart webhook
186-
187-
- name: Enable webhook service
188-
ansible.builtin.systemd:
189-
name: webhook.service
190-
enabled: true
191-
state: started
175+
- name: Webhook setup
176+
tags: webhook
177+
block:
178+
- name: Install webhook
179+
ansible.builtin.copy:
180+
src: "{{playbook_dir}}/webhook/webhook.py"
181+
dest: /usr/bin/webhook.py
182+
mode: 0755
183+
notify: Restart webhook
184+
185+
- name: Configure webhook system service
186+
ansible.builtin.copy:
187+
src: "{{playbook_dir}}/webhook/webhook.service"
188+
dest: /etc/systemd/system/webhook.service
189+
mode: 0644
190+
notify:
191+
- Reload systemd
192+
- Restart webhook
193+
194+
- name: Configure webhook secrets
195+
ansible.builtin.template:
196+
src: webhook.env.j2
197+
dest: /etc/caddy/webhook.env
198+
mode: 0644
199+
notify:
200+
- Restart webhook
201+
202+
- name: Enable webhook service
203+
ansible.builtin.systemd:
204+
name: webhook.service
205+
enabled: true
206+
state: started
192207

193208
# Monitoring setup
194209
# ################
195-
- name: Configure Prometheus
196-
ansible.builtin.copy:
197-
src: prometheus.yml
198-
dest: /etc/prometheus/prometheus.yml
199-
mode: 0644
200-
notify:
201-
- Restart Prometheus
202-
203-
- name: Enable prometheus node exporter service
204-
ansible.builtin.systemd:
205-
name: prometheus-node-exporter.service
206-
enabled: true
207-
state: started
210+
- name: Monitoring
211+
tags: monitoring
212+
block:
213+
- name: Configure Prometheus
214+
ansible.builtin.copy:
215+
src: prometheus.yml
216+
dest: /etc/prometheus/prometheus.yml
217+
mode: 0644
218+
notify:
219+
- Restart Prometheus
208220

209-
- name: Enable prometheus service
210-
ansible.builtin.systemd:
211-
name: prometheus.service
212-
enabled: true
213-
state: started
221+
- name: Enable prometheus node exporter service
222+
ansible.builtin.systemd:
223+
name: prometheus-node-exporter.service
224+
enabled: true
225+
state: started
226+
227+
- name: Enable prometheus service
228+
ansible.builtin.systemd:
229+
name: prometheus.service
230+
enabled: true
231+
state: started
214232

215233
# Handlers restart/reload services at playbook completion
216234
# #######################################################

0 commit comments

Comments
 (0)