|
1 | | -- name: System - apt update and apt upgrade |
2 | | - apt: update_cache=yes upgrade=yes |
3 | | - when: debpkg_mode or nixpkg_mode |
4 | | - # SEE http://archive.vn/DKJjs#parameter-upgrade |
5 | | - |
6 | | -- name: Install required security updates |
7 | | - apt: |
8 | | - pkg: |
9 | | - - tzdata |
10 | | - - linux-libc-dev |
11 | | - when: debpkg_mode or nixpkg_mode |
12 | | -# SEE https://github.com/georchestra/ansible/issues/55#issuecomment-588313638 |
13 | | -# Without this, a similar error is faced |
14 | | -- name: Install Ansible dependencies |
15 | | - apt: |
16 | | - pkg: |
17 | | - - acl |
18 | | - when: debpkg_mode or nixpkg_mode |
19 | | - |
20 | | -- name: Install security tools |
21 | | - apt: |
22 | | - pkg: |
23 | | - - nftables |
24 | | - - fail2ban |
25 | | - update_cache: yes |
26 | | - cache_valid_time: 3600 |
27 | | - when: debpkg_mode or nixpkg_mode |
28 | | - |
29 | | -- name: Use nftables backend |
30 | | - shell: | |
31 | | - update-alternatives --set iptables /usr/sbin/iptables-nft |
32 | | - update-alternatives --set ip6tables /usr/sbin/ip6tables-nft |
33 | | - update-alternatives --set arptables /usr/sbin/arptables-nft |
34 | | - update-alternatives --set ebtables /usr/sbin/ebtables-nft |
35 | | - systemctl restart ufw |
36 | | - when: debpkg_mode or nixpkg_mode |
37 | | - |
38 | | -- name: Create Sysstat log directory |
39 | | - file: |
40 | | - path: /var/log/sysstat |
41 | | - state: directory |
42 | | - when: debpkg_mode or nixpkg_mode |
43 | | - |
44 | | -- name: Install other useful tools |
45 | | - apt: |
46 | | - pkg: |
47 | | - - bwm-ng |
48 | | - - htop |
49 | | - - net-tools |
50 | | - - ngrep |
51 | | - - sysstat |
52 | | - - vim-tiny |
53 | | - update_cache: yes |
54 | | - when: debpkg_mode or nixpkg_mode |
| 1 | +- name: Execute tasks when (debpkg_mode or nixpkg_mode) |
| 2 | + when: |
| 3 | + - (debpkg_mode or nixpkg_mode) |
| 4 | + block: |
| 5 | + - name: System - apt update and apt upgrade |
| 6 | + ansible.builtin.apt: |
| 7 | + update_cache: true |
| 8 | + upgrade: true |
| 9 | + # SEE http://archive.vn/DKJjs#parameter-upgrade |
| 10 | + |
| 11 | + - name: Install required security updates Ansible dependencies, security tools, and other useful things |
| 12 | + ansible.builtin.apt: |
| 13 | + cache_valid_time: 3600 |
| 14 | + pkg: |
| 15 | + - acl |
| 16 | + - bwm-ng |
| 17 | + - fail2ban |
| 18 | + - htop |
| 19 | + - linux-libc-dev |
| 20 | + - net-tools |
| 21 | + - nftables |
| 22 | + - ngrep |
| 23 | + - sysstat |
| 24 | + - tzdata |
| 25 | + - vim |
| 26 | + update_cache: true |
| 27 | + # SEE https://github.com/georchestra/ansible/issues/55#issuecomment-588313638 |
| 28 | + # Without this, a similar error is faced |
| 29 | + |
| 30 | + - name: Use nftables backend |
| 31 | + community.general.alternatives: |
| 32 | + name: "{{ alternatives['name'] }}" |
| 33 | + path: "{{ alternatives['path'] }}" |
| 34 | + loop: |
| 35 | + - { name: 'iptables', path: '/usr/sbin/iptables-nft' } |
| 36 | + - { name: 'ip6tables', path: '/usr/sbin/ip6tables-nft' } |
| 37 | + - { name: 'arptables', path: '/usr/sbin/arptables-nft' } |
| 38 | + - { name: 'ebtables', path: '/usr/sbin/ebtables-nft' } |
| 39 | + loop_control: |
| 40 | + loop_var: 'alternatives' |
| 41 | + |
| 42 | + - name: restart ufw |
| 43 | + ansible.builtin.systemd_service: |
| 44 | + name: 'ufw' |
| 45 | + state: 'restarted' |
| 46 | + |
| 47 | + - name: Create Sysstat log directory |
| 48 | + ansible.builtin.file: |
| 49 | + path: '/var/log/sysstat' |
| 50 | + state: 'directory' |
| 51 | + |
| 52 | + - name: Configure sysstat |
| 53 | + ansible.builtin.copy: |
| 54 | + dest: "/etc/{{ sysstat_item }}/sysstat" |
| 55 | + src: "files/{{ sysstat_item }}.sysstat" |
| 56 | + loop: |
| 57 | + - default |
| 58 | + - sysstat |
| 59 | + loop_control: |
| 60 | + loop_var: 'sysstat_item' |
| 61 | + |
| 62 | + - name: Adjust APT update intervals |
| 63 | + ansible.builtin.copy: |
| 64 | + dest: '/etc/apt/apt.conf.d/10periodic' |
| 65 | + src: 'files/apt_periodic' |
55 | 66 |
|
56 | 67 | - name: Install other useful tools |
57 | | - apt: |
| 68 | + ansible.builtin.apt: |
58 | 69 | pkg: |
59 | 70 | - less |
60 | | - update_cache: yes |
61 | | - when: qemu_mode is defined |
62 | | - |
63 | | -- name: Configure sysstat |
64 | | - copy: |
65 | | - src: files/sysstat.sysstat |
66 | | - dest: /etc/sysstat/sysstat |
67 | | - when: debpkg_mode or nixpkg_mode |
68 | | - |
69 | | -- name: Configure default sysstat |
70 | | - copy: |
71 | | - src: files/default.sysstat |
72 | | - dest: /etc/default/sysstat |
73 | | - when: debpkg_mode or nixpkg_mode |
74 | | - |
75 | | - |
76 | | -- name: Adjust APT update intervals |
77 | | - copy: |
78 | | - src: files/apt_periodic |
79 | | - dest: /etc/apt/apt.conf.d/10periodic |
80 | | - when: debpkg_mode or nixpkg_mode |
81 | | - |
82 | | -# Find platform architecture and set as a variable |
83 | | -- name: finding platform architecture |
84 | | - shell: if [ $(uname -m) = "aarch64" ]; then echo "arm64"; else echo "amd64"; fi |
85 | | - register: platform_output |
86 | | - tags: |
87 | | - - update |
88 | | - - update-only |
89 | | -- set_fact: |
90 | | - platform: "{{ platform_output.stdout }}" |
| 71 | + update_cache: true |
| 72 | + when: |
| 73 | + - qemu_mode is defined |
| 74 | + |
| 75 | +- name: Set the platform arch as a fact |
| 76 | + ansible.builtin.set_fact: |
| 77 | + platform: "{{ 'amd64' if ansible_facts['architecture'] == 'x86_64' else 'arm64' }}" |
91 | 78 | tags: |
92 | 79 | - update |
93 | 80 | - update-only |
94 | | - when: debpkg_mode or nixpkg_mode or stage2_nix |
95 | | - |
96 | | -- name: create overrides dir |
97 | | - file: |
98 | | - state: directory |
99 | | - owner: root |
100 | | - group: root |
101 | | - path: /etc/systemd/system/systemd-resolved.service.d |
102 | | - mode: '0700' |
103 | | - when: debpkg_mode or nixpkg_mode |
104 | | - |
105 | | -- name: Custom systemd overrides for resolved |
106 | | - copy: |
107 | | - src: files/systemd-resolved.conf |
108 | | - dest: /etc/systemd/system/systemd-resolved.service.d/override.conf |
109 | | - when: debpkg_mode or nixpkg_mode |
110 | | - |
111 | | -- name: System - Create services.slice |
112 | | - template: |
113 | | - src: files/services.slice.j2 |
114 | | - dest: /etc/systemd/system/services.slice |
115 | | - when: debpkg_mode or nixpkg_mode |
116 | | - |
117 | | - |
118 | | -- name: System - systemd reload |
119 | | - systemd: daemon_reload=yes |
120 | | - when: debpkg_mode or nixpkg_mode |
121 | | - |
122 | | -- name: Configure journald |
123 | | - copy: |
124 | | - src: files/journald.conf |
125 | | - dest: /etc/systemd/journald.conf |
126 | | - when: debpkg_mode or nixpkg_mode |
127 | | - |
128 | | -- name: reload systemd-journald |
129 | | - systemd: |
130 | | - name: systemd-journald |
131 | | - state: restarted |
132 | | - when: debpkg_mode or nixpkg_mode |
133 | | - |
134 | | -- name: Configure logind |
135 | | - copy: |
136 | | - src: files/logind.conf |
137 | | - dest: /etc/systemd/logind.conf |
138 | | - when: debpkg_mode or nixpkg_mode |
139 | | - |
140 | | -- name: reload systemd-logind |
141 | | - systemd: |
142 | | - name: systemd-logind |
143 | | - state: restarted |
144 | | - when: debpkg_mode or nixpkg_mode |
145 | | - |
146 | | -- name: enable timestamps for shell history |
147 | | - copy: |
148 | | - content: | |
149 | | - export HISTTIMEFORMAT='%d/%m/%y %T ' |
150 | | - dest: /etc/profile.d/09-history-timestamps.sh |
151 | | - mode: 0644 |
152 | | - owner: root |
153 | | - group: root |
154 | | - when: debpkg_mode or nixpkg_mode |
155 | | - |
156 | | -- name: configure systemd's pager |
157 | | - copy: |
158 | | - content: | |
159 | | - export SYSTEMD_LESS=FRXMK |
160 | | - dest: /etc/profile.d/10-systemd-pager.sh |
161 | | - mode: 0644 |
162 | | - owner: root |
163 | | - group: root |
164 | | - when: debpkg_mode or nixpkg_mode |
| 81 | + when: |
| 82 | + - (debpkg_mode or nixpkg_mode or stage2_nix) |
| 83 | + |
| 84 | +- name: Execute more tasks when (debpkg_mode or nixpkg_mode) |
| 85 | + when: |
| 86 | + - (debpkg_mode or nixpkg_mode) |
| 87 | + block: |
| 88 | + - name: Custom systemd overrides for resolved |
| 89 | + ansible.builtin.copy: |
| 90 | + dest: '/etc/systemd/system/systemd-resolved.service.d/' |
| 91 | + directory_mode: '0700' |
| 92 | + group: 'root' |
| 93 | + mode: '0644' |
| 94 | + owner: 'root' |
| 95 | + src: 'files/systemd-resolved.conf' |
| 96 | + |
| 97 | + - name: System - Create services.slice |
| 98 | + ansible.builtin.template: |
| 99 | + dest: '/etc/systemd/system/services.slice' |
| 100 | + src: 'files/services.slice.j2' |
| 101 | + |
| 102 | + - name: System - systemd reload |
| 103 | + ansible.builtin.systemd_service: |
| 104 | + daemon_reload: true |
| 105 | + |
| 106 | + - name: Configure journald and logind |
| 107 | + ansible.builtin.copy: |
| 108 | + dest: "/etc/systemd/{{ config_item }}.conf" |
| 109 | + src: "files/{{ config_item }}.conf" |
| 110 | + loop: |
| 111 | + - journald |
| 112 | + - logind |
| 113 | + loop_control: |
| 114 | + loop_var: 'config_item' |
| 115 | + |
| 116 | + - name: reload systemd-journald |
| 117 | + ansible.builtin.systemd_service: |
| 118 | + name: "systemd-{{ config_item }}" |
| 119 | + state: 'restarted' |
| 120 | + loop: |
| 121 | + - journald |
| 122 | + - logind |
| 123 | + loop_control: |
| 124 | + loop_var: 'config_item' |
| 125 | + |
| 126 | + - name: enable timestamps for shell history |
| 127 | + ansible.builtin.copy: |
| 128 | + content: | |
| 129 | + export HISTTIMEFORMAT='%d/%m/%y %T ' |
| 130 | + dest: /etc/profile.d/09-history-timestamps.sh |
| 131 | + mode: '0644' |
| 132 | + owner: 'root' |
| 133 | + group: 'root' |
| 134 | + |
| 135 | + - name: configure systemd's pager |
| 136 | + ansible.builtin.copy: |
| 137 | + content: | |
| 138 | + export SYSTEMD_LESS=FRXMK |
| 139 | + dest: /etc/profile.d/10-systemd-pager.sh |
| 140 | + mode: '0644' |
| 141 | + owner: 'root' |
| 142 | + group: 'root' |
| 143 | + |
| 144 | + # Set Sysctl params specific to keepalives |
| 145 | + - name: Set net.ipv4.tcp_keepalive_time=1800 |
| 146 | + ansible.builtin.sysctl: |
| 147 | + name: 'net.ipv4.tcp_keepalive_time' |
| 148 | + value: 1800 |
| 149 | + state: 'present' |
| 150 | + |
| 151 | + - name: Set net.ipv4.tcp_keepalive_intvl=60 |
| 152 | + ansible.builtin.sysctl: |
| 153 | + name: 'net.ipv4.tcp_keepalive_intvl' |
| 154 | + value: 60 |
| 155 | + state: 'present' |
| 156 | + |
| 157 | +- name: Execute tasks when (debpkg_mode or nixpkg_mode) |
| 158 | + when: |
| 159 | + - (debpkg_mode or nixpkg_mode) |
| 160 | + block: |
| 161 | + # Set Sysctl params for restarting the OS on OOM after 10 |
| 162 | + - name: Set vm.panic_on_oom=1 |
| 163 | + ansible.builtin.sysctl: |
| 164 | + name: 'vm.panic_on_oom' |
| 165 | + reload: true |
| 166 | + state: 'present' |
| 167 | + value: '1' |
| 168 | + |
| 169 | + - name: Set kernel.panic=10 |
| 170 | + ansible.builtin.sysctl: |
| 171 | + name: 'kernel.panic' |
| 172 | + reload: true |
| 173 | + state: 'present' |
| 174 | + value: '10' |
165 | 175 |
|
166 | 176 | - name: set hosts file |
167 | | - copy: |
| 177 | + ansible.builtin.copy: |
168 | 178 | content: | |
169 | 179 | 127.0.0.1 localhost |
170 | 180 | ::1 localhost |
171 | | - dest: /etc/hosts |
172 | | - mode: 0644 |
173 | | - owner: root |
174 | | - group: root |
175 | | - when: debpkg_mode or stage2_nix |
176 | | - |
177 | | -#Set Sysctl params for restarting the OS on oom after 10 |
178 | | -- name: Set vm.panic_on_oom=1 |
179 | | - ansible.builtin.sysctl: |
180 | | - name: vm.panic_on_oom |
181 | | - value: '1' |
182 | | - state: present |
183 | | - reload: yes |
184 | | - when: debpkg_mode or nixpkg_mode |
185 | | - |
186 | | -- name: Set kernel.panic=10 |
187 | | - ansible.builtin.sysctl: |
188 | | - name: kernel.panic |
189 | | - value: '10' |
190 | | - state: present |
191 | | - reload: yes |
192 | | - when: debpkg_mode or nixpkg_mode |
| 181 | + dest: '/etc/hosts' |
| 182 | + mode: '0644' |
| 183 | + owner: 'root' |
| 184 | + group: 'root' |
| 185 | + when: |
| 186 | + - (debpkg_mode or stage2_nix) |
193 | 187 |
|
194 | 188 | - name: configure system |
195 | 189 | ansible.posix.sysctl: |
|
200 | 194 | ansible.posix.sysctl: |
201 | 195 | name: 'net.ipv4.ip_local_port_range' |
202 | 196 | value: '1025 65000' |
203 | | - |
204 | | -#Set Sysctl params specific to keepalives |
205 | | -- name: Set net.ipv4.tcp_keepalive_time=1800 |
206 | | - ansible.builtin.sysctl: |
207 | | - name: net.ipv4.tcp_keepalive_time |
208 | | - value: 1800 |
209 | | - state: present |
210 | | - when: debpkg_mode or nixpkg_mode |
211 | | -- name: Set net.ipv4.tcp_keepalive_intvl=60 |
212 | | - ansible.builtin.sysctl: |
213 | | - name: net.ipv4.tcp_keepalive_intvl |
214 | | - value: 60 |
215 | | - state: present |
216 | | - when: debpkg_mode or nixpkg_mode |
0 commit comments