Skip to content

Commit 61ba084

Browse files
committed
refactor(ansible): bring our ansible up to modern ansible-lint standards
1 parent 89b311f commit 61ba084

File tree

1 file changed

+73
-66
lines changed

1 file changed

+73
-66
lines changed

ansible/tasks/finalize-ami.yml

Lines changed: 73 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,88 @@
11
- name: PG logging conf
2-
template:
3-
src: files/postgresql_config/postgresql-csvlog.conf
4-
dest: /etc/postgresql/logging.conf
5-
group: postgres
2+
ansible.builtin.template:
3+
dest: '/etc/postgresql/logging.conf'
4+
group: 'postgres'
5+
src: 'files/postgresql_config/postgresql-csvlog.conf'
66

7-
- name: UFW - Allow SSH connections
8-
ufw:
9-
rule: allow
10-
name: OpenSSH
11-
12-
- name: UFW - Allow connections to postgreSQL (5432)
13-
ufw:
14-
rule: allow
15-
port: "5432"
16-
17-
- name: UFW - Allow connections to postgreSQL (6543)
18-
ufw:
19-
rule: allow
20-
port: "6543"
21-
tags:
22-
- install-pgbouncer
23-
24-
- name: UFW - Allow connections to http (80)
25-
ufw:
26-
rule: allow
27-
port: http
28-
tags:
29-
- install-supabase-internal
30-
31-
- name: UFW - Allow connections to https (443)
32-
ufw:
33-
rule: allow
34-
port: https
35-
tags:
36-
- install-supabase-internal
7+
- name: UFW - Allow SSH/PostgreSQL/PgBouncer/HTTP/HTTPS connections
8+
community.general.ufw:
9+
name: "{{ port_item }}"
10+
rule: 'allow'
11+
loop:
12+
- 'OpenSSH'
13+
- '5432'
14+
- '6543'
15+
- 'http'
16+
- 'https'
17+
loop_control:
18+
loop_var: 'port_item'
3719

3820
- name: UFW - Deny all other incoming traffic by default
39-
ufw:
40-
state: enabled
41-
policy: deny
42-
direction: incoming
21+
community.general.ufw:
22+
direction: 'incoming'
23+
policy: 'deny'
24+
state: 'enabled'
4325

4426
- name: Move logrotate files to /etc/logrotate.d/
45-
copy:
46-
src: "files/logrotate_config/{{ item.file }}"
47-
dest: "/etc/logrotate.d/{{ item.file }}"
48-
mode: "0700"
49-
owner: root
27+
ansible.builtin.copy:
28+
dest: "/etc/logrotate.d/{{ logrotate_item['file'] }}"
29+
mode: '0700'
30+
owner: 'root'
31+
src: "files/logrotate_config/{{ logrotate_item['file'] }}"
5032
loop:
51-
- { file: "logrotate-postgres-csv.conf" }
52-
- { file: "logrotate-postgres.conf" }
53-
- { file: "logrotate-walg.conf" }
54-
- { file: "logrotate-postgres-auth.conf" }
33+
- { file: 'logrotate-postgres.conf' }
34+
- { file: 'logrotate-postgres-auth.conf' }
35+
- { file: 'logrotate-postgres-csv.conf' }
36+
- { file: 'logrotate-walg.conf' }
37+
loop_control:
38+
loop_var: 'logrotate_item'
5539

56-
- name: Ensure default Postgres logrotate config is removed
57-
file:
58-
path: /etc/logrotate.d/postgresql-common
59-
state: absent
40+
- name: Ensure default PostgreSQL logrotate config is removed
41+
ansible.builtin.file:
42+
path: '/etc/logrotate.d/postgresql-common'
43+
state: 'absent'
6044

6145
- name: Disable cron access
6246
copy:
63-
src: files/cron.deny
64-
dest: /etc/cron.deny
47+
dest: '/etc/cron.deny'
48+
src: 'files/cron.deny'
49+
50+
- name: Create logrotate.timer.d overrides dir
51+
become: true
52+
ansible.builtin.file:
53+
group: 'root'
54+
mode: '0755'
55+
owner: 'root'
56+
path: '/etc/systemd/system/logrotate.timer.d'
57+
state: 'directory'
58+
59+
- name: Configure logrotate.timer.d overrides
60+
become: true
61+
community.general.ini_file:
62+
group: 'root'
63+
mode: '0644'
64+
noextraspaces: true
65+
option: 'OnCalendar'
66+
owner: 'root'
67+
path: '/etc/systemd/system/logrotate.timer.d/override.conf'
68+
section: 'Timer'
69+
state: 'present'
70+
value: '*:0/5'
6571

66-
- name: Configure logrotation to run every hour
67-
shell:
68-
cmd: |
69-
cp /usr/lib/systemd/system/logrotate.timer /etc/systemd/system/logrotate.timer
70-
sed -i -e 's;daily;*:0/5;' /etc/systemd/system/logrotate.timer
71-
systemctl reenable logrotate.timer
72-
become: yes
72+
- name: Reload systemd and start logrotate timer
73+
become: true
74+
ansible.builtin.systemd_service:
75+
daemon_reload: true
76+
enabled: true
77+
name: 'logrotate.timer'
78+
state: 'restarted'
7379

7480
- name: import pgsodium_getkey script
75-
template:
76-
src: files/pgsodium_getkey_readonly.sh.j2
81+
ansible.builtin.template:
7782
dest: "{{ pg_bindir }}/pgsodium_getkey.sh"
78-
owner: postgres
79-
group: postgres
80-
mode: 0700
81-
when: debpkg_mode or stage2_nix
83+
group: 'postgres'
84+
mode: '0700'
85+
owner: 'postgres'
86+
src: 'files/pgsodium_getkey_readonly.sh.j2'
87+
when:
88+
- (debpkg_mode or stage2_nix)

0 commit comments

Comments
 (0)