Compare commits
3 commits
89d9122420
...
73e77bde70
| Author | SHA1 | Date | |
|---|---|---|---|
|
73e77bde70 |
|||
|
6b19f69135 |
|||
|
b0347d64bf |
18 changed files with 82 additions and 52 deletions
|
|
@ -3,69 +3,98 @@
|
||||||
hosts: base_config_hosts
|
hosts: base_config_hosts
|
||||||
roles:
|
roles:
|
||||||
- base_config
|
- base_config
|
||||||
|
tags:
|
||||||
|
- base_config
|
||||||
|
|
||||||
- name: Ensure systemd-networkd config deployment on systemd_networkd_hosts
|
- name: Ensure systemd-networkd config deployment on systemd_networkd_hosts
|
||||||
hosts: systemd_networkd_hosts
|
hosts: systemd_networkd_hosts
|
||||||
roles:
|
roles:
|
||||||
- systemd_networkd
|
- systemd_networkd
|
||||||
|
tags:
|
||||||
|
- systemd_networkd
|
||||||
|
|
||||||
- name: Ensure nftables deployment on nftables_hosts
|
- name: Ensure nftables deployment on nftables_hosts
|
||||||
hosts: nftables_hosts
|
hosts: nftables_hosts
|
||||||
roles:
|
roles:
|
||||||
- nftables
|
- nftables
|
||||||
|
tags:
|
||||||
|
- nftables
|
||||||
|
|
||||||
- name: Ensure deployment of infrastructure authorized keys
|
- name: Ensure deployment of infrastructure authorized keys
|
||||||
hosts: infrastructure_authorized_keys_hosts
|
hosts: infrastructure_authorized_keys_hosts
|
||||||
roles:
|
roles:
|
||||||
- infrastructure_authorized_keys
|
- infrastructure_authorized_keys
|
||||||
|
tags:
|
||||||
|
- infrastructure_authorized_keys
|
||||||
|
|
||||||
- name: Ensure Nextcloud config
|
- name: Ensure Nextcloud config
|
||||||
hosts: nextcloud_hosts
|
hosts: nextcloud_hosts
|
||||||
roles:
|
roles:
|
||||||
- nextcloud
|
- nextcloud
|
||||||
|
tags:
|
||||||
|
- nextcloud
|
||||||
|
|
||||||
- name: Ensure ola deployment on ola_hosts
|
- name: Ensure ola deployment on ola_hosts
|
||||||
hosts: ola_hosts
|
hosts: ola_hosts
|
||||||
roles:
|
roles:
|
||||||
- ola
|
- ola
|
||||||
|
tags:
|
||||||
|
- ola
|
||||||
|
|
||||||
- name: Ensure foobazdmx deployment on foobazdmx_hosts
|
- name: Ensure foobazdmx deployment on foobazdmx_hosts
|
||||||
hosts: foobazdmx_hosts
|
hosts: foobazdmx_hosts
|
||||||
roles:
|
roles:
|
||||||
- foobazdmx
|
- foobazdmx
|
||||||
|
tags:
|
||||||
|
- foobazdmx
|
||||||
|
|
||||||
- name: Ensure Dokuwiki config
|
- name: Ensure Dokuwiki config
|
||||||
hosts: wiki_hosts
|
hosts: wiki_hosts
|
||||||
roles:
|
roles:
|
||||||
- dokuwiki
|
- dokuwiki
|
||||||
|
tags:
|
||||||
|
- dokuwiki
|
||||||
|
|
||||||
- name: Ensure NetBox deployment on netbox_hosts
|
- name: Ensure NetBox deployment on netbox_hosts
|
||||||
hosts: netbox_hosts
|
hosts: netbox_hosts
|
||||||
roles:
|
roles:
|
||||||
- netbox
|
- netbox
|
||||||
|
tags:
|
||||||
|
- netbox
|
||||||
|
|
||||||
- name: Ensure NGINX deployment on nginx_hosts, which are also public_reverse_proxy_hosts, before certbot role runs
|
- name: Ensure NGINX deployment on nginx_hosts, which are also public_reverse_proxy_hosts, before certbot role runs
|
||||||
hosts: nginx_hosts:&public_reverse_proxy_hosts
|
hosts: nginx_hosts:&public_reverse_proxy_hosts
|
||||||
roles:
|
roles:
|
||||||
- nginx
|
- nginx
|
||||||
|
tags:
|
||||||
|
- nginx
|
||||||
|
- public_reverse_proxy
|
||||||
|
|
||||||
- name: Ensure certbot and certificate deployment on certbot_hosts
|
- name: Ensure certbot and certificate deployment on certbot_hosts
|
||||||
hosts: certbot_hosts
|
hosts: certbot_hosts
|
||||||
roles:
|
roles:
|
||||||
- certbot
|
- certbot
|
||||||
|
tags:
|
||||||
|
- certbot
|
||||||
|
|
||||||
- name: Ensure OnlyOffice custom fonts
|
- name: Ensure OnlyOffice custom fonts
|
||||||
ansible.builtin.import_playbook: onlyoffice_fonts.yaml
|
ansible.builtin.import_playbook: onlyoffice_fonts.yaml
|
||||||
|
tags:
|
||||||
|
- onlyoffice_fonts
|
||||||
|
|
||||||
- name: Ensure Docker Compose deployment on docker_compose_hosts
|
- name: Ensure Docker Compose deployment on docker_compose_hosts
|
||||||
hosts: docker_compose_hosts
|
hosts: docker_compose_hosts
|
||||||
roles:
|
roles:
|
||||||
- docker_compose
|
- docker_compose
|
||||||
|
tags:
|
||||||
|
- docker_compose
|
||||||
|
|
||||||
- name: Ensure NGINX deployment on nginx_hosts
|
- name: Ensure NGINX deployment on nginx_hosts
|
||||||
hosts: nginx_hosts:!public_reverse_proxy_hosts
|
hosts: nginx_hosts:!public_reverse_proxy_hosts
|
||||||
roles:
|
roles:
|
||||||
- nginx
|
- nginx
|
||||||
|
tags:
|
||||||
|
- nginx
|
||||||
|
|
||||||
- name: Configure unattended upgrades for all non-hypervisors
|
- name: Configure unattended upgrades for all non-hypervisors
|
||||||
hosts: all:!hypervisors
|
hosts: all:!hypervisors
|
||||||
|
|
@ -77,32 +106,46 @@
|
||||||
- "o=${distro_id},n=${distro_codename}"
|
- "o=${distro_id},n=${distro_codename}"
|
||||||
- "o=Docker,n=${distro_codename}"
|
- "o=Docker,n=${distro_codename}"
|
||||||
- "o=nginx,n=${distro_codename}"
|
- "o=nginx,n=${distro_codename}"
|
||||||
|
tags:
|
||||||
|
- unattended_upgrades
|
||||||
|
|
||||||
- name: Ensure Alloy is installed and Setup on alloy_hosts
|
- name: Ensure Alloy is installed and Setup on alloy_hosts
|
||||||
hosts: alloy_hosts
|
hosts: alloy_hosts
|
||||||
become: true
|
become: true
|
||||||
roles:
|
roles:
|
||||||
- alloy
|
- alloy
|
||||||
|
tags:
|
||||||
|
- alloy
|
||||||
|
|
||||||
- name: Ensure ansible_pull deployment on ansible_pull_hosts
|
- name: Ensure ansible_pull deployment on ansible_pull_hosts
|
||||||
hosts: ansible_pull_hosts
|
hosts: ansible_pull_hosts
|
||||||
roles:
|
roles:
|
||||||
- ansible_pull
|
- ansible_pull
|
||||||
|
tags:
|
||||||
|
- ansible_pull
|
||||||
|
|
||||||
- name: Ensure msmtp is setup on msmtp_hosts
|
- name: Ensure msmtp is setup on msmtp_hosts
|
||||||
hosts: msmtp_hosts
|
hosts: msmtp_hosts
|
||||||
roles:
|
roles:
|
||||||
- msmtp
|
- msmtp
|
||||||
|
tags:
|
||||||
|
- msmtp
|
||||||
|
|
||||||
- name: Ensure Renovate is setup on renovate_hosts
|
- name: Ensure Renovate is setup on renovate_hosts
|
||||||
hosts: renovate_hosts
|
hosts: renovate_hosts
|
||||||
roles:
|
roles:
|
||||||
- renovate
|
- renovate
|
||||||
|
tags:
|
||||||
|
- renovate
|
||||||
|
|
||||||
- name: Run ensure_eh22_styleguide_dir Playbook
|
- name: Run ensure_eh22_styleguide_dir Playbook
|
||||||
ansible.builtin.import_playbook: ensure_eh22_styleguide_dir.yaml
|
ansible.builtin.import_playbook: ensure_eh22_styleguide_dir.yaml
|
||||||
|
tags:
|
||||||
|
- eh22_styleguide_dir
|
||||||
|
|
||||||
- name: Setup authoritative dns servers
|
- name: Setup authoritative dns servers
|
||||||
hosts: auth-dns
|
hosts: auth-dns
|
||||||
roles:
|
roles:
|
||||||
- knot
|
- knot
|
||||||
|
tags:
|
||||||
|
- knot
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
- name: Ensure NGINX repo setup and nginx install on relevant hosts
|
- name: Ensure NGINX repo setup and nginx install on relevant hosts
|
||||||
hosts: nginx_hosts:nextcloud_hosts
|
hosts: nginx_hosts:nextcloud_hosts
|
||||||
|
tags:
|
||||||
|
- nextcloud_nginx
|
||||||
tasks:
|
tasks:
|
||||||
- name: Ensure NGINX repo is setup
|
- name: Ensure NGINX repo is setup
|
||||||
ansible.builtin.include_role:
|
ansible.builtin.include_role:
|
||||||
|
|
@ -13,6 +15,8 @@
|
||||||
|
|
||||||
- name: Ensure Docker repo setup and package install on relevant hosts
|
- name: Ensure Docker repo setup and package install on relevant hosts
|
||||||
hosts: docker_compose_hosts:nextcloud_hosts
|
hosts: docker_compose_hosts:nextcloud_hosts
|
||||||
|
tags:
|
||||||
|
- nextcloud_docker
|
||||||
tasks:
|
tasks:
|
||||||
- name: Ensure Docker repo is setup
|
- name: Ensure Docker repo is setup
|
||||||
ansible.builtin.include_role:
|
ansible.builtin.include_role:
|
||||||
|
|
@ -28,6 +32,8 @@
|
||||||
hosts: all:!hypervisors
|
hosts: all:!hypervisors
|
||||||
roles:
|
roles:
|
||||||
- apt_update_and_upgrade
|
- apt_update_and_upgrade
|
||||||
|
tags:
|
||||||
|
- apt_update_and_upgrade
|
||||||
|
|
||||||
- name: Run deploy Playbook
|
- name: Run deploy Playbook
|
||||||
ansible.builtin.import_playbook: deploy.yaml
|
ansible.builtin.import_playbook: deploy.yaml
|
||||||
|
|
|
||||||
|
|
@ -196,7 +196,6 @@ matrix-intern IN A 172.31.17.150
|
||||||
; have this for compatibility (like references in CI)
|
; have this for compatibility (like references in CI)
|
||||||
public-web-static-intern IN AAAA 2a00:14b0:42:102::17
|
public-web-static-intern IN AAAA 2a00:14b0:42:102::17
|
||||||
git-intern IN A 172.31.17.154
|
git-intern IN A 172.31.17.154
|
||||||
woodpecker-intern IN A 172.31.17.160
|
|
||||||
penpot-intern IN A 172.31.17.162
|
penpot-intern IN A 172.31.17.162
|
||||||
forgejo-runner-builder IN A 172.31.17.202
|
forgejo-runner-builder IN A 172.31.17.202
|
||||||
renovate-forgejo IN A 172.31.17.163
|
renovate-forgejo IN A 172.31.17.163
|
||||||
|
|
@ -275,7 +274,6 @@ matrix IN CNAME public-reverse-proxy
|
||||||
mas IN CNAME public-reverse-proxy
|
mas IN CNAME public-reverse-proxy
|
||||||
element-admin IN CNAME public-reverse-proxy
|
element-admin IN CNAME public-reverse-proxy
|
||||||
netbox IN CNAME public-reverse-proxy
|
netbox IN CNAME public-reverse-proxy
|
||||||
woodpecker IN CNAME public-reverse-proxy
|
|
||||||
onlyoffice IN CNAME public-reverse-proxy
|
onlyoffice IN CNAME public-reverse-proxy
|
||||||
pad IN CNAME public-reverse-proxy
|
pad IN CNAME public-reverse-proxy
|
||||||
pretalx IN CNAME public-reverse-proxy
|
pretalx IN CNAME public-reverse-proxy
|
||||||
|
|
|
||||||
|
|
@ -129,7 +129,7 @@ groups:
|
||||||
# General high disk read and write rate alerts.
|
# General high disk read and write rate alerts.
|
||||||
# Excluding: hypervisor hosts, CI hosts
|
# Excluding: hypervisor hosts, CI hosts
|
||||||
- alert: HostUnusualDiskReadRate
|
- alert: HostUnusualDiskReadRate
|
||||||
expr: (sum by (instance) (rate(node_disk_read_bytes_total[2m])) / 1024 / 1024 > 50) * on(instance) group_left (nodename) node_uname_info{nodename=~".+", nodename!="forgejo-actions-runner", nodename!="woodpecker", nodename!="chaosknoten"}
|
expr: (sum by (instance) (rate(node_disk_read_bytes_total[2m])) / 1024 / 1024 > 50) * on(instance) group_left (nodename) node_uname_info{nodename=~".+", nodename!="forgejo-actions-runner", nodename!="chaosknoten"}
|
||||||
for: 5m
|
for: 5m
|
||||||
labels:
|
labels:
|
||||||
severity: warning
|
severity: warning
|
||||||
|
|
@ -137,7 +137,7 @@ groups:
|
||||||
summary: Host unusual disk read rate (instance {{ $labels.instance }})
|
summary: Host unusual disk read rate (instance {{ $labels.instance }})
|
||||||
description: "Disk is probably reading too much data (> 50 MB/s)\n VALUE = {{ $value }}"
|
description: "Disk is probably reading too much data (> 50 MB/s)\n VALUE = {{ $value }}"
|
||||||
- alert: HostUnusualDiskWriteRate
|
- alert: HostUnusualDiskWriteRate
|
||||||
expr: (sum by (instance) (rate(node_disk_written_bytes_total[2m])) / 1024 / 1024 > 50) * on(instance) group_left (nodename) node_uname_info{nodename=~".+", nodename!="forgejo-actions-runner", nodename!="woodpecker", nodename!="chaosknoten"}
|
expr: (sum by (instance) (rate(node_disk_written_bytes_total[2m])) / 1024 / 1024 > 50) * on(instance) group_left (nodename) node_uname_info{nodename=~".+", nodename!="forgejo-actions-runner", nodename!="chaosknoten"}
|
||||||
for: 2m
|
for: 2m
|
||||||
labels:
|
labels:
|
||||||
severity: warning
|
severity: warning
|
||||||
|
|
@ -147,7 +147,7 @@ groups:
|
||||||
# CI hosts high disk read and write alerts.
|
# CI hosts high disk read and write alerts.
|
||||||
# Longer intervals to account for disk intensive CI tasks.
|
# Longer intervals to account for disk intensive CI tasks.
|
||||||
- alert: CIHostUnusualDiskReadRate
|
- alert: CIHostUnusualDiskReadRate
|
||||||
expr: (sum by (instance) (rate(node_disk_read_bytes_total[2m])) / 1024 / 1024 > 50) * on(instance) group_left (nodename) node_uname_info{nodename="forgejo-actions-runner", nodename="woodpecker"}
|
expr: (sum by (instance) (rate(node_disk_read_bytes_total[2m])) / 1024 / 1024 > 50) * on(instance) group_left (nodename) node_uname_info{nodename="forgejo-actions-runner"}
|
||||||
for: 10m
|
for: 10m
|
||||||
labels:
|
labels:
|
||||||
severity: warning
|
severity: warning
|
||||||
|
|
@ -155,7 +155,7 @@ groups:
|
||||||
summary: CI host unusual disk read rate for 10 min (instance {{ $labels.instance }})
|
summary: CI host unusual disk read rate for 10 min (instance {{ $labels.instance }})
|
||||||
description: "Disk is probably reading too much data (> 50 MB/s)\n VALUE = {{ $value }}"
|
description: "Disk is probably reading too much data (> 50 MB/s)\n VALUE = {{ $value }}"
|
||||||
- alert: VirtualHostUnusualDiskWriteRate
|
- alert: VirtualHostUnusualDiskWriteRate
|
||||||
expr: (sum by (instance) (rate(node_disk_written_bytes_total[2m])) / 1024 / 1024 > 50) * on(instance) group_left (nodename) node_uname_info{nodename="forgejo-actions-runner", nodename="woodpecker"}
|
expr: (sum by (instance) (rate(node_disk_written_bytes_total[2m])) / 1024 / 1024 > 50) * on(instance) group_left (nodename) node_uname_info{nodename="forgejo-actions-runner"}
|
||||||
for: 4m
|
for: 4m
|
||||||
labels:
|
labels:
|
||||||
severity: warning
|
severity: warning
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,6 @@ map $host $upstream_acme_challenge_host {
|
||||||
eh20.hamburg.ccc.de public-web-static.hosts.hamburg.ccc.de:31820;
|
eh20.hamburg.ccc.de public-web-static.hosts.hamburg.ccc.de:31820;
|
||||||
hacker.tours public-web-static.hosts.hamburg.ccc.de:31820;
|
hacker.tours public-web-static.hosts.hamburg.ccc.de:31820;
|
||||||
staging.hacker.tours public-web-static.hosts.hamburg.ccc.de:31820;
|
staging.hacker.tours public-web-static.hosts.hamburg.ccc.de:31820;
|
||||||
woodpecker.hamburg.ccc.de 172.31.17.160:31820;
|
|
||||||
design.hamburg.ccc.de 172.31.17.162:31820;
|
design.hamburg.ccc.de 172.31.17.162:31820;
|
||||||
hydra.hamburg.ccc.de 172.31.17.163:31820;
|
hydra.hamburg.ccc.de 172.31.17.163:31820;
|
||||||
ntfy.hamburg.ccc.de ntfy.hosts.hamburg.ccc.de:31820;
|
ntfy.hamburg.ccc.de ntfy.hosts.hamburg.ccc.de:31820;
|
||||||
|
|
|
||||||
|
|
@ -91,7 +91,6 @@ stream {
|
||||||
eh20.hamburg.ccc.de public-web-static.hosts.hamburg.ccc.de:8443;
|
eh20.hamburg.ccc.de public-web-static.hosts.hamburg.ccc.de:8443;
|
||||||
hacker.tours public-web-static.hosts.hamburg.ccc.de:8443;
|
hacker.tours public-web-static.hosts.hamburg.ccc.de:8443;
|
||||||
staging.hacker.tours public-web-static.hosts.hamburg.ccc.de:8443;
|
staging.hacker.tours public-web-static.hosts.hamburg.ccc.de:8443;
|
||||||
woodpecker.hamburg.ccc.de 172.31.17.160:8443;
|
|
||||||
design.hamburg.ccc.de 172.31.17.162:8443;
|
design.hamburg.ccc.de 172.31.17.162:8443;
|
||||||
hydra.hamburg.ccc.de 172.31.17.163:8443;
|
hydra.hamburg.ccc.de 172.31.17.163:8443;
|
||||||
cfp.eh22.easterhegg.eu pretalx.hosts.hamburg.ccc.de:8443;
|
cfp.eh22.easterhegg.eu pretalx.hosts.hamburg.ccc.de:8443;
|
||||||
|
|
|
||||||
|
|
@ -294,14 +294,6 @@ endpoints:
|
||||||
- "[CERTIFICATE_EXPIRATION] > 48h"
|
- "[CERTIFICATE_EXPIRATION] > 48h"
|
||||||
- "[BODY] == pat(*CCCHH Wiki*)"
|
- "[BODY] == pat(*CCCHH Wiki*)"
|
||||||
|
|
||||||
- name: Woodpecker
|
|
||||||
url: "https://woodpecker.hamburg.ccc.de/"
|
|
||||||
<<: *services_chaosknoten_defaults
|
|
||||||
conditions:
|
|
||||||
- "[STATUS] == 200"
|
|
||||||
- "[CERTIFICATE_EXPIRATION] > 48h"
|
|
||||||
- "[BODY] == pat(*Woodpecker*)"
|
|
||||||
|
|
||||||
- name: Zammad
|
- name: Zammad
|
||||||
url: "https://zammad.hamburg.ccc.de/"
|
url: "https://zammad.hamburg.ccc.de/"
|
||||||
<<: *services_chaosknoten_defaults
|
<<: *services_chaosknoten_defaults
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
---
|
---
|
||||||
- name: "reload systemd-resolved"
|
- name: "reload systemd-resolved"
|
||||||
tags: [ "deploy_systemd_resolved_config" ]
|
|
||||||
become: true
|
become: true
|
||||||
ansible.builtin.systemd:
|
ansible.builtin.systemd:
|
||||||
name: "systemd-resolved.service"
|
name: "systemd-resolved.service"
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,11 @@
|
||||||
---
|
---
|
||||||
- name: Ensure /etc/resolv.conf is a plain file
|
- name: Ensure /etc/resolv.conf is a plain file
|
||||||
tags: [ "deploy_systemd_resolved_config" ]
|
|
||||||
become: true
|
become: true
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "/etc/resolv.conf"
|
path: "/etc/resolv.conf"
|
||||||
state: file
|
state: file
|
||||||
|
|
||||||
- name: Write nameserver config directly into /etc/resolv.conf
|
- name: Write nameserver config directly into /etc/resolv.conf
|
||||||
tags: [ "deploy_systemd_resolved_config" ]
|
|
||||||
become: true
|
become: true
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
src: "resolv.conf.j2"
|
src: "resolv.conf.j2"
|
||||||
|
|
@ -17,7 +15,6 @@
|
||||||
mode: u=rw,g=r,o=r
|
mode: u=rw,g=r,o=r
|
||||||
|
|
||||||
- name: Disable systemd-resolved
|
- name: Disable systemd-resolved
|
||||||
tags: [ "deploy_systemd_resolved_config" ]
|
|
||||||
become: true
|
become: true
|
||||||
ansible.builtin.systemd:
|
ansible.builtin.systemd:
|
||||||
name: "systemd-resolved.service"
|
name: "systemd-resolved.service"
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,11 @@
|
||||||
---
|
---
|
||||||
- name: Ensure systemd-resolved is installed
|
- name: Ensure systemd-resolved is installed
|
||||||
tags: [ "deploy_systemd_resolved_config" ]
|
|
||||||
become: true
|
become: true
|
||||||
when: ansible_facts["distribution"] == "Debian"
|
when: ansible_facts["distribution"] == "Debian"
|
||||||
ansible.builtin.package:
|
ansible.builtin.package:
|
||||||
name: [ "systemd-resolved" ]
|
name: [ "systemd-resolved" ]
|
||||||
|
|
||||||
- name: Deploy systemd-resolved config
|
- name: Deploy systemd-resolved config
|
||||||
tags: [ "deploy_systemd_resolved_config" ]
|
|
||||||
become: true
|
become: true
|
||||||
notify: "reload systemd-resolved"
|
notify: "reload systemd-resolved"
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
|
|
@ -18,7 +16,6 @@
|
||||||
mode: u=rw,g=r,o=r
|
mode: u=rw,g=r,o=r
|
||||||
|
|
||||||
- name: Make /etc/resolv.conf points to systemd-resolved
|
- name: Make /etc/resolv.conf points to systemd-resolved
|
||||||
tags: [ "deploy_systemd_resolved_config" ]
|
|
||||||
become: true
|
become: true
|
||||||
when: deploy_systemd_resolved_config__mode != "extern"
|
when: deploy_systemd_resolved_config__mode != "extern"
|
||||||
ansible.builtin.file: # noqa: jinja
|
ansible.builtin.file: # noqa: jinja
|
||||||
|
|
@ -35,7 +32,6 @@
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
|
|
||||||
- name: Ensure systemd-resolved is running and enabled
|
- name: Ensure systemd-resolved is running and enabled
|
||||||
tags: [ "deploy_systemd_resolved_config" ]
|
|
||||||
become: true
|
become: true
|
||||||
ansible.builtin.systemd:
|
ansible.builtin.systemd:
|
||||||
name: systemd-resolved.service
|
name: systemd-resolved.service
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,8 @@
|
||||||
---
|
---
|
||||||
- name: Include enable.yaml
|
- name: Include enable.yaml
|
||||||
tags: [ "deploy_systemd_resolved_config" ]
|
|
||||||
ansible.builtin.include_tasks: enable.yaml
|
ansible.builtin.include_tasks: enable.yaml
|
||||||
when: deploy_systemd_resolved_config__enable
|
when: deploy_systemd_resolved_config__enable
|
||||||
|
|
||||||
- name: Include disable.yaml
|
- name: Include disable.yaml
|
||||||
tags: [ "deploy_systemd_resolved_config" ]
|
|
||||||
ansible.builtin.include_tasks: disable.yaml
|
ansible.builtin.include_tasks: disable.yaml
|
||||||
when: not deploy_systemd_resolved_config__enable
|
when: not deploy_systemd_resolved_config__enable
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,16 @@
|
||||||
---
|
---
|
||||||
- name: reload knot
|
- name: reload knot
|
||||||
tags: [ auth-dns ]
|
|
||||||
become: true
|
become: true
|
||||||
ansible.builtin.systemd:
|
ansible.builtin.systemd:
|
||||||
name: knot.service
|
name: knot.service
|
||||||
state: reloaded
|
state: reloaded
|
||||||
|
|
||||||
- name: netplan apply
|
- name: netplan apply
|
||||||
tags: [ auth-dns ]
|
|
||||||
become: true
|
become: true
|
||||||
changed_when: true
|
changed_when: true
|
||||||
ansible.builtin.command: "netplan apply"
|
ansible.builtin.command: "netplan apply"
|
||||||
|
|
||||||
- name: restart knot-exporter
|
- name: restart knot-exporter
|
||||||
tags: [ auth-dns ]
|
|
||||||
become: true
|
become: true
|
||||||
ansible.builtin.systemd:
|
ansible.builtin.systemd:
|
||||||
name: knot-exporter.service
|
name: knot-exporter.service
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
---
|
---
|
||||||
- name: Install knot
|
- name: Install knot
|
||||||
tags: [ auth-dns ]
|
|
||||||
become: true
|
become: true
|
||||||
ansible.builtin.package:
|
ansible.builtin.package:
|
||||||
name:
|
name:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
---
|
---
|
||||||
- name: Ensure required directories exist
|
- name: Ensure required directories exist
|
||||||
tags: [ auth-dns ]
|
|
||||||
become: true
|
become: true
|
||||||
loop: [ "/etc/knot", "/etc/knot/zones" ]
|
loop: [ "/etc/knot", "/etc/knot/zones" ]
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
|
|
@ -11,7 +10,6 @@
|
||||||
mode: u=rwx,g=rx,o=
|
mode: u=rwx,g=rx,o=
|
||||||
|
|
||||||
- name: Deploy knot configuration file
|
- name: Deploy knot configuration file
|
||||||
tags: [ auth-dns ]
|
|
||||||
become: true
|
become: true
|
||||||
notify: reload knot
|
notify: reload knot
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
|
|
@ -22,7 +20,6 @@
|
||||||
mode: u=rw,g=r,o=
|
mode: u=rw,g=r,o=
|
||||||
|
|
||||||
- name: Deploy configured zones
|
- name: Deploy configured zones
|
||||||
tags: [ auth-dns ]
|
|
||||||
become: true
|
become: true
|
||||||
notify: reload knot
|
notify: reload knot
|
||||||
loop: "{{ knot__zones }}"
|
loop: "{{ knot__zones }}"
|
||||||
|
|
@ -42,7 +39,6 @@
|
||||||
# this results in outgoing zone transfers failing because knot will prefer to use the dynamic address over the statically configured one.
|
# this results in outgoing zone transfers failing because knot will prefer to use the dynamic address over the statically configured one.
|
||||||
# so because we are configuring a DNS Nameserver where known IP-Addresses are actually important for ACL reasons, SLAAC is disabled
|
# so because we are configuring a DNS Nameserver where known IP-Addresses are actually important for ACL reasons, SLAAC is disabled
|
||||||
- name: Disable IPv6 SLAAC
|
- name: Disable IPv6 SLAAC
|
||||||
tags: [ auth-dns ]
|
|
||||||
become: true
|
become: true
|
||||||
notify: netplan apply
|
notify: netplan apply
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
- name: Deploy knot-exporter systemd unit
|
- name: Deploy knot-exporter systemd unit
|
||||||
tags: [ auth-dns ]
|
|
||||||
become: true
|
become: true
|
||||||
register: knot_deploy_service_file
|
register: knot_deploy_service_file
|
||||||
notify: restart knot-exporter
|
notify: restart knot-exporter
|
||||||
|
|
@ -11,7 +10,6 @@
|
||||||
mode: u=rw,g=r,o=r
|
mode: u=rw,g=r,o=r
|
||||||
|
|
||||||
- name: Ensure knot-exporter is running and enabled
|
- name: Ensure knot-exporter is running and enabled
|
||||||
tags: [ auth-dns ]
|
|
||||||
become: true
|
become: true
|
||||||
ansible.builtin.systemd:
|
ansible.builtin.systemd:
|
||||||
name: knot-exporter.service
|
name: knot-exporter.service
|
||||||
|
|
|
||||||
7
roles/renovate/files/renovate-cleanup.service
Normal file
7
roles/renovate/files/renovate-cleanup.service
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
[Unit]
|
||||||
|
Description=renovate cleanup (delete docker volume)
|
||||||
|
Conflicts=renovate.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
ExecStart=/usr/bin/docker volume rm renovate
|
||||||
9
roles/renovate/files/renovate-cleanup.timer
Normal file
9
roles/renovate/files/renovate-cleanup.timer
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
[Unit]
|
||||||
|
Description=renovate cleanup (delete docker volume) running daily
|
||||||
|
|
||||||
|
[Timer]
|
||||||
|
# @daily with 10 minute offset
|
||||||
|
OnCalendar=*-*-* 00:10
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=timers.target
|
||||||
|
|
@ -16,31 +16,28 @@
|
||||||
mode: "0640"
|
mode: "0640"
|
||||||
become: true
|
become: true
|
||||||
|
|
||||||
- name: ensure systemd service exists
|
- name: ensure systemd services and timers exist
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
src: renovate.service
|
src: "{{ item }}"
|
||||||
dest: /etc/systemd/system/renovate.service
|
dest: "/etc/systemd/system/{{ item }}"
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: "0644"
|
mode: "0644"
|
||||||
become: true
|
become: true
|
||||||
|
loop:
|
||||||
|
- renovate.service
|
||||||
|
- renovate-cleanup.service
|
||||||
|
- renovate.timer
|
||||||
|
- renovate-cleanup.timer
|
||||||
notify:
|
notify:
|
||||||
- systemd daemon reload
|
- systemd daemon reload
|
||||||
|
|
||||||
- name: ensure systemd timer exists
|
- name: ensure systemd timers are started and enabled
|
||||||
ansible.builtin.copy:
|
|
||||||
src: renovate.timer
|
|
||||||
dest: /etc/systemd/system/renovate.timer
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
mode: "0644"
|
|
||||||
become: true
|
|
||||||
notify:
|
|
||||||
- systemd daemon reload
|
|
||||||
|
|
||||||
- name: ensure systemd timer is started and enabled
|
|
||||||
ansible.builtin.systemd_service:
|
ansible.builtin.systemd_service:
|
||||||
name: renovate.timer
|
name: "{{ item }}"
|
||||||
state: started
|
state: started
|
||||||
enabled: true
|
enabled: true
|
||||||
|
loop:
|
||||||
|
- renovate.timer
|
||||||
|
- renovate-cleanup.timer
|
||||||
become: true
|
become: true
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue