Compare commits

...
Sign in to create a new pull request.

72 commits

Author SHA1 Message Date
2075a8dfc9 Merge pull request 'Update renovate/renovate Docker tag to v39.219.2' () from renovate/renovate-renovate-39.x into master 2025-03-28 17:07:02 +01:00
801cd60f4d Update renovate/renovate Docker tag to v39.220.1 2025-03-28 15:18:04 +00:00
919f973164 Merge pull request '⬆️ Update cleanURI to fix extractor issues' () from cleanURI-updates into master
Reviewed-on: 
2025-03-27 11:56:23 +01:00
318c646515 ⬆️ Bump cleanuri-extractor to 0.5.3 2025-03-27 11:39:07 +01:00
cd7109cac9 ⬆️ Bump cleanuri-canonizer to 0.5.3 2025-03-27 11:39:07 +01:00
f799bef69a Merge pull request '⬆️ requirements: Migrate unattended-upgrades' () from alex/netz39-infra-ansible:unattended-upgrades into master
Reviewed-on: 
Reviewed-by: Stefan Haun <tux@netz39.de>
2025-03-26 18:25:01 +01:00
8ec4dd5ae2 Merge pull request '⬆️ Update cleanURI components' () from bump-cleanrui-webui into master
Reviewed-on: 
Reviewed-by: Alexander Dahl <alex@netz39.de>
2025-03-26 16:33:06 +01:00
c564dd5df7 ⬆️ Bump cleanURI-extractor to 0.5.2 2025-03-26 15:19:06 +01:00
390d5015cb ⬆️ Bump cleanURI-canonizer to 0.5.2 2025-03-26 15:19:05 +01:00
edc9be4d51 ⬆️ Bump cleanURI-apigateway to 0.3.2 2025-03-26 15:16:57 +01:00
640596f73d ⬆️ Bumn mrtux/cleanuri-webui to 0.2.2 2025-03-26 15:16:57 +01:00
581b5d276c Merge pull request 'Update grafana/grafana Docker tag to v11.6.0' () from renovate/grafana-grafana-11.x into master
Reviewed-on: 
2025-03-26 13:30:26 +01:00
82523e8bcd Update grafana/grafana Docker tag to v11.6.0 2025-03-25 21:18:14 +00:00
fd039c143f Merge pull request 'Update netz39/ampel-controller Docker tag to v0.2.0' () from renovate/netz39-ampel-controller-0.x into master
Reviewed-on: 
2025-03-23 21:54:13 +01:00
94757d9785 Update netz39/ampel-controller Docker tag to v0.2.0 2025-03-23 21:53:57 +01:00
db49b5c862 Merge pull request 'Update dependency 24367dfa.dehydrated to v2.1.0' () from renovate/24367dfa.dehydrated-2.x into master
Reviewed-on: 
2025-03-23 21:53:24 +01:00
b1b480f415 Update dependency 24367dfa.dehydrated to v2.1.0 2025-03-23 20:23:14 +00:00
21125a3784 Merge pull request 'Update codeberg.org/forgejo/forgejo Docker tag to v10.0.3' () from renovate/codeberg.org-forgejo-forgejo-10.x into master
Reviewed-on: 
2025-03-23 11:33:17 +01:00
4c467865e7 Update codeberg.org/forgejo/forgejo Docker tag to v10.0.3 2025-03-23 09:18:06 +00:00
470cd03c57 Merge pull request 'Update renovate/renovate Docker tag to v39.211.0' () from renovate/renovate-renovate-39.x into master
Reviewed-on: 
2025-03-22 19:57:09 +01:00
5a41489246 Update renovate/renovate Docker tag to v39.211.0 2025-03-22 19:56:47 +01:00
1b2cb40096 Merge pull request 'Update codeberg.org/forgejo/forgejo Docker tag to v10.0.2' () from renovate/codeberg.org-forgejo-forgejo-10.x into master
Reviewed-on: 
2025-03-22 19:56:22 +01:00
1135385fe6 Update codeberg.org/forgejo/forgejo Docker tag to v10.0.2 2025-03-21 13:18:04 +00:00
392d1970f7 Merge pull request 'Update shlinkio/shlink Docker tag to v4.4.6' () from renovate/shlinkio-shlink-4.x into master
Reviewed-on: 
2025-03-20 17:07:06 +01:00
cdc1d52a38 Update shlinkio/shlink Docker tag to v4.4.6 2025-03-20 11:58:41 +01:00
09359799b8 Merge pull request '✏️ host: pottwal: Fix misleading task name' () from alex/netz39-infra-ansible:pottwal into master
Reviewed-on: 
Reviewed-by: Stefan Haun <tux@netz39.de>
2025-03-20 11:58:15 +01:00
725fa1d074 ✏️ host: pottwal: Fix misleading task name
Looks like a copy'n'paste mistake.  Improve the other task name while at
it.

Fixes: 88e14f7ca6 ("👌 pottwal: Move prosody config to /etc")
2025-03-19 22:00:12 +01:00
c01f6b263e Merge pull request 'Update renovate/renovate Docker tag to v39.206.0' () from renovate/renovate-renovate-39.x into master
Reviewed-on: 
2025-03-17 10:23:33 +01:00
b05df7aa1d Update renovate/renovate Docker tag to v39.206.0 2025-03-17 08:18:07 +00:00
40ae8191f2 Merge pull request '✏️ host: tau: Fix misleading task name' () from docker-registry into master
Reviewed-on: 
Reviewed-by: Stefan Haun <tux@netz39.de>
2025-03-14 19:02:18 +01:00
7eebfd5d61 ✏️ host: tau: Fix misleading task name
Task here is to check the auth dir, not the data dir, that's a different
one.  Rename the used variable while at it.

Fixes: f539a42024 ("Add a docker registry")
2025-03-14 08:50:56 +01:00
28d80515b2 ⬆️ requirements: Migrate unattended-upgrades
The role was moved into a collection.

Link: https://github.com/hifis-net/ansible-collection-toolkit#looking-for-the-unattended_upgrades-role
Link: https://github.com/hifis-net/ansible-collection-toolkit/releases/tag/v4.0.0
Link: https://github.com/hifis-net/ansible-collection-toolkit/issues/165
2025-03-12 18:50:16 +01:00
e1b9349f19 Merge pull request '🚨 Fix linter warnings of type 'fqcn'' () from alex/netz39-infra-ansible:lint into master
Reviewed-on: 
Reviewed-by: Stefan Haun <tux@netz39.de>
2025-03-12 17:59:47 +01:00
4c0c84b6a6 Merge pull request 'chore(deps): update renovate/renovate docker tag to v39.198.1' () from renovate/renovate-renovate-39.x into master
Reviewed-on: 
2025-03-12 15:15:06 +01:00
e5d1c2ac88 chore(deps): update renovate/renovate docker tag to v39.198.1 2025-03-12 15:14:43 +01:00
865b3c5495 Merge pull request 'renovate/renovate: Update once a week and allow automerge' () from renovate-config into master
Reviewed-on: 
2025-03-12 14:26:34 +01:00
5a591c4145 Allow automerge for renovate/renovate 2025-03-12 14:26:05 +01:00
b9416d0096 Limit renovate/renovate updates to Friday before 1am
This effectively reduces the renovate update PRs to (mostly) once per week.
2025-03-12 14:26:05 +01:00
031fe9c06e Add comment to clarify Renovate configuration source 2025-03-12 14:26:05 +01:00
585e8eb2b2 Merge pull request 'chore(deps): update redmine docker tag to v6.0.4' () from renovate/redmine-6.x into master
Reviewed-on: 
2025-03-12 14:25:30 +01:00
d1dbda444d chore(deps): update redmine docker tag to v6.0.4 2025-03-11 17:18:04 +00:00
6f1e80493a 🚨 group: all: Fix fqcn linter warnings
WARNING  Listing 3 violation(s) that are fatal
    fqcn[action-core]: Use FQCN for builtin module actions (apt).
    group-all.yml:16 Use `ansible.builtin.apt` or `ansible.legacy.apt` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (apt).
    group-all.yml:23 Use `ansible.builtin.apt` or `ansible.legacy.apt` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    group-all.yml:28 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    Read documentation for instructions on how to ignore specific rule violations.

                     Rule Violation Summary
     count tag               profile    rule associated tags
         3 fqcn[action-core] production formatting

    Failed after shared profile, 4/5 star rating: 3 failure(s), 0 warning(s) on 135 files.
2025-03-09 19:00:21 +01:00
2b9b1d1c39 🚨 host: krypton: Fix fqcn linter warnings
fqcn[action-core]: Use FQCN for builtin module actions (file).
    host-krypton.yml:41 Use `ansible.builtin.file` or `ansible.legacy.file` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-krypton.yml:52 Action `docker_container` is not FQCN.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-krypton.yml:117 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-krypton.yml:130 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.
2025-03-09 19:00:21 +01:00
fcd3b9c87b 🚨 host: platon: Fix fqcn linter warnings
fqcn[action-core]: Use FQCN for builtin module actions (service).
    host-platon.yml:308 Use `ansible.builtin.service` or `ansible.legacy.service` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (service).
    host-platon.yml:314 Use `ansible.builtin.service` or `ansible.legacy.service` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (service).
    host-platon.yml:320 Use `ansible.builtin.service` or `ansible.legacy.service` instead.
2025-03-09 19:00:21 +01:00
d145039dbe 🚨 host: pottwal: Fix fqcn linter warnings
fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-pottwal.yml:57 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-pottwal.yml:83 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-pottwal.yml:91 Action `docker_container` is not FQCN.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_network`.
    host-pottwal.yml:104 Action `docker_network` is not FQCN.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-pottwal.yml:120 Action `docker_container` is not FQCN.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-pottwal.yml:140 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-pottwal.yml:169 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-pottwal.yml:237 Action `docker_container` is not FQCN.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-pottwal.yml:259 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-pottwal.yml:278 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (file).
    host-pottwal.yml:301 Use `ansible.builtin.file` or `ansible.legacy.file` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_network`.
    host-pottwal.yml:314 Action `docker_network` is not FQCN.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-pottwal.yml:322 Action `docker_container` is not FQCN.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-pottwal.yml:342 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-pottwal.yml:374 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (file).
    host-pottwal.yml:383 Use `ansible.builtin.file` or `ansible.legacy.file` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-pottwal.yml:393 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-pottwal.yml:413 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_network`.
    host-pottwal.yml:438 Action `docker_network` is not FQCN.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-pottwal.yml:446 Action `docker_container` is not FQCN.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-pottwal.yml:466 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-pottwal.yml:492 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (file).
    host-pottwal.yml:501 Use `ansible.builtin.file` or `ansible.legacy.file` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-pottwal.yml:511 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-pottwal.yml:528 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (file).
    host-pottwal.yml:537 Use `ansible.builtin.file` or `ansible.legacy.file` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-pottwal.yml:554 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-pottwal.yml:575 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (file).
    host-pottwal.yml:585 Use `ansible.builtin.file` or `ansible.legacy.file` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-pottwal.yml:599 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-pottwal.yml:619 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (template).
    host-pottwal.yml:629 Use `ansible.builtin.template` or `ansible.legacy.template` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (service).
    host-pottwal.yml:657 Use `ansible.builtin.service` or `ansible.legacy.service` instead.
2025-03-09 19:00:21 +01:00
9eedf004a5 🚨 host: radon: Fix fqcn linter warnings
fqcn[action-core]: Use FQCN for builtin module actions (file).
    host-radon.yml:40 Use `ansible.builtin.file` or `ansible.legacy.file` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (template).
    host-radon.yml:52 Use `ansible.builtin.template` or `ansible.legacy.template` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-radon.yml:61 Action `docker_container` is not FQCN.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-radon.yml:91 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-radon.yml:111 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-radon.yml:132 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-radon.yml:153 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-radon.yml:162 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-radon.yml:180 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-radon.yml:188 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-radon.yml:204 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-radon.yml:213 Action `docker_container` is not FQCN.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-radon.yml:230 Action `docker_container` is not FQCN.
2025-03-09 19:00:21 +01:00
95706d0ad4 🚨 host: tau: Fix fqcn linter warnings
fqcn[action]: Use FQCN for module actions, such `community.docker.docker_network`.
    host-tau.yml:28 Action `docker_network` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-tau.yml:37 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-tau.yml:54 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-tau.yml:61 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-tau.yml:78 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (file).
    host-tau.yml:94 Use `ansible.builtin.file` or `ansible.legacy.file` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-tau.yml:101 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-tau.yml:120 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-tau.yml:149 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-tau.yml:168 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-tau.yml:178 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    host-tau.yml:193 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.
2025-03-09 19:00:21 +01:00
5d1ca7ef9f 🚨 host: unicorn: Fix fqcn linter warning
fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-unicorn.yml:14 Action `docker_container` is not FQCN.
2025-03-09 19:00:21 +01:00
e61a68de53 🚨 host: wittgenstein: Fix fqcn linter warnings
fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-wittgenstein.yml:132 Action `docker_container` is not FQCN.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    host-wittgenstein.yml:151 Action `docker_container` is not FQCN.
2025-03-09 19:00:21 +01:00
23bc6d7b69 🚨 roles: Fix remaining fqcn linter warnings
fqcn[action-core]: Use FQCN for builtin module actions (service).
    roles/apache_letsencrypt/handlers/main.yml:3 Use `ansible.builtin.service` or `ansible.legacy.service` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (apt).
    roles/dd24_dyndns_cron/tasks/main.yml:2 Use `ansible.builtin.apt` or `ansible.legacy.apt` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (apt).
    roles/desec_dyndns_cron/tasks/main.yml:2 Use `ansible.builtin.apt` or `ansible.legacy.apt` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (command).
    roles/nfs_host/handlers/main.yml:2 Use `ansible.builtin.command` or `ansible.legacy.command` instead.
2025-03-09 19:00:21 +01:00
bec6fc20b7 🚨 roles: apache: Fix fqcn linter warnings
fqcn[action-core]: Use FQCN for builtin module actions (service).
    roles/apache/handlers/main.yml:3 Use `ansible.builtin.service` or `ansible.legacy.service` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (apt).
    roles/apache/tasks/main.yml:2 Use `ansible.builtin.apt` or `ansible.legacy.apt` instead.

    fqcn[action]: Use FQCN for module actions, such `community.general.apache2_module`.
    roles/apache/tasks/main.yml:8 Action `apache2_module` is not FQCN.
2025-03-09 19:00:21 +01:00
8b54b36392 🚨 roles: cleanuri: Fix fqcn linter warnings
fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    roles/cleanuri/tasks/main.yml:3 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    roles/cleanuri/tasks/main.yml:17 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    roles/cleanuri/tasks/main.yml:25 Action `docker_container` is not FQCN.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    roles/cleanuri/tasks/main.yml:44 Action `docker_container` is not FQCN.

    fqcn[action]: Use FQCN for module actions, such `community.docker.docker_container`.
    roles/cleanuri/tasks/main.yml:61 Action `docker_container` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (include_role).
    roles/cleanuri/tasks/main.yml:78 Use `ansible.builtin.include_role` or `ansible.legacy.include_role` instead.
2025-03-09 18:26:03 +01:00
11e98a4d8e 🚨 roles: nginx_https_ingress: Fix fqcn linter warnings
fqcn[action-core]: Use FQCN for builtin module actions (service).
    roles/nginx_https_ingress/handlers/main.yml:3 Use `ansible.builtin.service` or `ansible.legacy.service` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (apt_key).
    roles/nginx_https_ingress/tasks/main.yml:20 Use `ansible.builtin.apt_key` or `ansible.legacy.apt_key` instead.
2025-03-08 22:25:28 +01:00
eeb87d2108 🚨 roles: setup_http_site_forward: Fix fqcn linter warnings
fqcn[action-core]: Use FQCN for builtin module actions (service).
    roles/setup_http_site_forward/handlers/main.yml:2 Use `ansible.builtin.service` or `ansible.legacy.service` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (template).
    roles/setup_http_site_forward/tasks/main.yml:2 Use `ansible.builtin.template` or `ansible.legacy.template` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (command).
    roles/setup_http_site_forward/tasks/main.yml:8 Use `ansible.builtin.command` or `ansible.legacy.command` instead.
2025-03-08 22:17:23 +01:00
cb50012dd3 🚨 roles: setup_http_site_proxy: Fix fqcn linter warnings
fqcn[action-core]: Use FQCN for builtin module actions (service).
    roles/setup_http_site_proxy/handlers/main.yml:2 Use `ansible.builtin.service` or `ansible.legacy.service` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (template).
    roles/setup_http_site_proxy/tasks/main.yml:2 Use `ansible.builtin.template` or `ansible.legacy.template` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (command).
    roles/setup_http_site_proxy/tasks/main.yml:9 Use `ansible.builtin.command` or `ansible.legacy.command` instead.
2025-03-08 22:12:00 +01:00
2b0e31870d 🚨 roles: users: Fix linter warnings of type 'fqcn'
fqcn[action-core]: Use FQCN for builtin module actions (shell).
    roles/users/handlers/main.yml:2 Use `ansible.builtin.shell` or `ansible.legacy.shell` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (package).
    roles/users/tasks/main.yml:2 Use `ansible.builtin.package` or `ansible.legacy.package` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (lineinfile).
    roles/users/tasks/main.yml:8 Use `ansible.builtin.lineinfile` or `ansible.legacy.lineinfile` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (user).
    roles/users/tasks/main.yml:16 Use `ansible.builtin.user` or `ansible.legacy.user` instead.

    fqcn[action]: Use FQCN for module actions, such `ansible.posix.authorized_key`.
    roles/users/tasks/main.yml:24 Action `authorized_key` is not FQCN.

    fqcn[action-core]: Use FQCN for builtin module actions (user).
    roles/users/tasks/main.yml:34 Use `ansible.builtin.user` or `ansible.legacy.user` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (stat).
    roles/users/tasks/main.yml:42 Use `ansible.builtin.stat` or `ansible.legacy.stat` instead.

    fqcn[action-core]: Use FQCN for builtin module actions (lineinfile).
    roles/users/tasks/main.yml:47 Use `ansible.builtin.lineinfile` or `ansible.legacy.lineinfile` instead.
2025-03-08 22:04:04 +01:00
f541f8f6fe Merge pull request 'Update eclipse-mosquitto Docker tag to v2.0.21' () from renovate/eclipse-mosquitto-2.x into master
Reviewed-on: 
2025-03-07 12:05:20 +01:00
7915336812 Update eclipse-mosquitto Docker tag to v2.0.21 2025-03-06 20:18:10 +00:00
b8e4746343 Merge pull request 'Update dependency lespocky.telegraf_docker_in_docker to v0.2.2' () from renovate/lespocky.telegraf_docker_in_docker-0.x into master
Reviewed-on: 
Reviewed-by: Alexander Dahl <alex@netz39.de>
2025-03-06 17:26:49 +01:00
856253de98 Update dependency lespocky.telegraf_docker_in_docker to v0.2.2 2025-03-06 13:18:03 +00:00
de7d285ee4 Merge pull request 'Fix linter warnings of type 'name'' () from alex/netz39-infra-ansible:lint into master
Reviewed-on: 
Reviewed-by: Stefan Haun <tux@netz39.de>
2025-03-05 18:13:58 +01:00
0f9060a2b1 Merge pull request 'Limit telegraf role to supported arch and unify docker host setup' () from unify-docker-hosts into master
Reviewed-on: 
Reviewed-by: Alexander Dahl <alex@netz39.de>
2025-03-05 18:10:35 +01:00
fca9c9ea3b Add wittgenstein to docker group 2025-03-05 12:26:17 +01:00
289ff674f9 Limit telegraf role to hosts with supporting arch
Temporary fix for https://github.com/LeSpocky/ansible-role-telegraf-docker-in-docker/issues/17
2025-03-05 12:26:17 +01:00
371f6b2907 Merge pull request 'Update dependency netz39.host_docker to v0.5.0' () from renovate/netz39.host_docker-0.x into master
Reviewed-on: 
Reviewed-by: Stefan Haun <tux@netz39.de>
2025-03-05 12:05:45 +01:00
dc6943354f Adjust variable docker_image_prune to change in netz39.host_docker 0.5.0 2025-03-05 12:00:46 +01:00
32bcc7e70b Update dependency netz39.host_docker to v0.5.0 2025-03-05 10:18:01 +00:00
0d8e580338 Merge pull request 'Update mrtux/grafana-screenshot Docker tag to v0.1.3' () from renovate/mrtux-grafana-screenshot-0.x into master
Reviewed-on: 
Reviewed-by: Stefan Haun <tux@netz39.de>
2025-03-05 08:47:45 +01:00
eef2d8b4fb Update mrtux/grafana-screenshot Docker tag to v0.1.3 2025-03-05 00:18:07 +00:00
bc43af38d9 🚨 Add names to plays to fix name[play] linter warnings
Adds basic descriptions on what those host are supposed to do.
2025-03-02 09:22:05 +01:00
e3d2e8a31b 🚨 Fix linter warning of type 'name[template]'
This warning:

    name[template]: Jinja templates should only be at the end of 'name'
    setup-ssh.yml:6 Task/Handler: Ensure {{ lookup('env', 'HOME') }}/.ssh/config.d/ dir is present

Reason for that warning is thin.  Using the actual home dir here adds
not much value, so keep it symbolic.

Link: https://ansible.readthedocs.io/projects/lint/rules/name/
2025-03-01 22:09:10 +01:00
8b2ab7753d 🚨 Fix linter warnings of type 'name[casing]'
ansible-lint reads like this:

    name[casing]: All names should start with an uppercase letter.

While at it: Some task/handler names were slightly adapted to better
match what should be done.
2025-03-01 21:21:22 +01:00
43 changed files with 209 additions and 192 deletions
group-all.ymlgroup-docker_host.ymlgroup-k3s.ymlgroup-proxmox.yml
group_vars/docker_host
host-beaker.ymlhost-hobbes.ymlhost-holmium.ymlhost-krypton.ymlhost-oganesson.ymlhost-platon.ymlhost-plumbum.ymlhost-pottwal.ymlhost-radon.ymlhost-tau.ymlhost-unicorn.ymlhost-wittgenstein.yml
host_vars
pottwal.n39.eu
wittgenstein.n39.eu
inventory.ymlrenovate.jsonrequirements.yml
roles
apache
handlers
tasks
apache_letsencrypt
handlers
tasks
cleanuri
defaults
tasks
dd24_dyndns_cron
handlers
tasks
desec_dyndns_cron
handlers
tasks
nfs_host
handlers
tasks
nginx_https_ingress
handlers
tasks
setup_http_site_forward
handlers
tasks
setup_http_site_proxy
handlers
tasks
users
handlers
tasks
setup-ssh.yml

View file

@ -1,7 +1,6 @@
---
# tasks for all hosts
- hosts: all
- name: Tasks for all hosts
hosts: all
become: true
vars:
@ -15,20 +14,20 @@
tasks:
- name: Update and clean package cache
apt:
ansible.builtin.apt:
update_cache: true
cache_valid_time: 3600
autoclean: true
changed_when: false
- name: Ensure unattended-upgrades is installed and up to date
apt:
ansible.builtin.apt:
name: unattended-upgrades
state: present
- name: Setup unattended-upgrades
include_role:
name: hifis.unattended_upgrades
ansible.builtin.include_role:
name: hifis.toolkit.unattended_upgrades
vars:
unattended_origins_patterns:
- "origin=*"

View file

@ -1,15 +1,18 @@
---
- hosts: docker_host
- name: Tasks for docker hosts
hosts: docker_host
become: true
roles:
- role: netz39.host_docker
- hosts: docker_host:&location_space
- name: Tasks for docker hosts at location space
hosts: docker_host:&location_space
become: true
roles:
- role: lespocky.telegraf_docker_in_docker
when: (ansible_architecture == "x86_64")
vars:
tdid_conf_dir: "/etc/telegraf"
tdid_influxdb_org: "{{ influxdb_org }}"

View file

@ -1,5 +1,6 @@
---
- hosts: k3s
- name: Tasks for kubernetes hosts
hosts: k3s
become: true
tasks:

View file

@ -1,5 +1,6 @@
---
- hosts: proxmox
- name: Tasks for virtual machines on proxmox host
hosts: proxmox
become: true
tasks:

View file

@ -1,3 +1,3 @@
---
docker_data_root: "/srv/docker"
docker_cron_image_prune: true
docker_image_prune: true

View file

@ -1,5 +1,6 @@
---
- hosts: beaker.n39.eu
- name: Setup things on host 'beaker' (proxmox server im space)
hosts: beaker.n39.eu
become: true
vars:
@ -9,7 +10,7 @@
tasks:
- name: enable proxmox gui login for admin users
- name: Enable proxmox gui login for admin users
ansible.builtin.lineinfile:
path: /etc/pve/user.cfg
regexp: "^user:{{ item.logname }}@pam"
@ -18,7 +19,7 @@
state: present
loop: "{{ users }}"
- name: configure proxmox admin group
- name: Configure proxmox admin group
ansible.builtin.lineinfile:
path: /etc/pve/user.cfg
regexp: "^group:Admins:"

View file

@ -1,5 +1,6 @@
---
- hosts: hobbes.n39.eu
- name: Setup things on host 'hobbes' (raspberry pi for kiosk screen)
hosts: hobbes.n39.eu
become: true
vars:

View file

@ -1,5 +1,6 @@
---
- hosts: holmium.n39.eu
- name: Setup things on host 'holmium' (http ingress vm)
hosts: holmium.n39.eu
become: true
vars:

View file

@ -1,5 +1,6 @@
---
- hosts: krypton.n39.eu
- name: Setup things on host 'krypton' (ldap vm)
hosts: krypton.n39.eu
become: true
vars:
@ -32,13 +33,13 @@
tasks:
# - name: Setup dehydrated challenge endpoint for {{ openldap_domain }}
# include_role:
# ansible.builtin.include_role:
# name: setup-http-dehydrated
# vars:
# site_name: "{{ openldap_domain }}"
- name: Ensure openLDAP directories are present.
file:
ansible.builtin.file:
path: "{{ item.path }}"
mode: "0755"
state: directory
@ -49,7 +50,7 @@
- path: "{{ dehydrated_certs_dir }}/{{ openldap_domain }}"
- name: Ensure container for openLDAP is running.
docker_container:
community.docker.docker_container:
name: openLDAP
image: osixia/openldap:1.5.0
detach: yes
@ -114,7 +115,7 @@
- name: Ensure container for entities validation service is running
docker_container:
community.docker.docker_container:
name: entities_validation_svc
image: netz39/entities_validation_svc:v1.0.4
pull: true
@ -127,7 +128,7 @@
TZ: "{{ timezone }}"
- name: Setup proxy site entities-validation.svc.n39.eu
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: entities-validation.svc.n39.eu

View file

@ -1,5 +1,6 @@
---
- hosts: oganesson.n39.eu
- name: Setup things on host 'oganesson' (ssh jump host vm)
hosts: oganesson.n39.eu
become: true
vars:

View file

@ -1,5 +1,6 @@
---
- hosts: platon.n39.eu
- name: Setup things on host 'platon' (raspberry pi for entrance door)
hosts: platon.n39.eu
become: true
vars:
ansible_python_interpreter: /usr/bin/python3
@ -63,7 +64,7 @@
owner: root
group: root
mode: '0644'
notify: restart mosquitto
notify: Restart mosquitto service
### Sesam for SSH access
@ -245,7 +246,7 @@
owner: root
group: root
mode: "0644"
notify: restart rsyslog
notify: Restart rsyslog
### Asterisk
@ -258,7 +259,7 @@
owner: root
group: root
mode: "0644"
notify: restart asterisk
notify: Restart asterisk
- name: Set up extensions for asterisk
# This uses the variables gatekeeper_user and door_open_command
@ -268,14 +269,14 @@
owner: root
group: root
mode: "0644"
notify: restart asterisk
notify: Restart asterisk
- name: Ensure asterisk is in the right groups
ansible.builtin.user:
name: asterisk
groups: audio,i2c,gpio
append: yes
notify: restart asterisk
notify: Restart asterisk
# Asterisk now executes shell scripts with reduced privileges, so we need to
# use sudo for I2C access.
@ -304,20 +305,20 @@
handlers:
- name: restart mosquitto
service:
- name: Restart mosquitto service
ansible.builtin.service:
name: mosquitto
state: restarted
enabled: yes
- name: restart rsyslog
service:
- name: Restart rsyslog
ansible.builtin.service:
name: rsyslog
state: restarted
enabled: yes
- name: restart asterisk
service:
- name: Restart asterisk
ansible.builtin.service:
name: asterisk
state: restarted
enabled: yes

View file

@ -1,5 +1,6 @@
---
- hosts: plumbum.n39.eu
- name: Setup things on host 'plumbum' (nfs server)
hosts: plumbum.n39.eu
become: true
roles:

View file

@ -1,5 +1,6 @@
---
- hosts: pottwal.n39.eu
- name: Setup things on host 'pottwal' (the big docker container host)
hosts: pottwal.n39.eu
become: true
roles:
@ -54,7 +55,7 @@
# If port 2222 is changed here, it must also be adapted
# in the forgejo config file (see application volume)!!
- name: Setup the docker container for forgejo
docker_container:
community.docker.docker_container:
name: forgejo
image: "{{ forgejo_image }}"
pull: true
@ -80,7 +81,7 @@
tags: ["forgejo"]
- name: Setup proxy site "{{ forgejo_domain_name }}"
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: "{{ forgejo_domain_name }}"
@ -88,7 +89,7 @@
tags: ["forgejo"]
- name: Ensure apt-cacher container is running
docker_container:
community.docker.docker_container:
name: apt_cacher_ng
image: mrtux/apt-cacher-ng:latest
pull: true
@ -101,7 +102,7 @@
TZ: "{{ timezone }}"
- name: Setup docker network
docker_network:
community.docker.docker_network:
name: shlinknet
state: present
internal: true
@ -117,7 +118,7 @@
- shlink
- name: Ensure shlink database container is running
docker_container:
community.docker.docker_container:
name: shlinkdb
image: postgres:16.8-alpine
pull: true
@ -137,7 +138,7 @@
- shlink
- name: Ensure container for shlink is running
docker_container:
community.docker.docker_container:
name: shlink
image: "{{ shlink_image }}"
pull: true
@ -166,7 +167,7 @@
- shlink
- name: Setup proxy site {{ shlink_domain_name }}
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: "{{ shlink_domain_name }}"
@ -183,7 +184,7 @@
msg: "prosody data dir is missing, please restore from the backup!"
when: not prosody_dir.stat.exists
- name: Ensure prosody config dir exists
- name: Ensure prosody main config dir exists
ansible.builtin.file:
path: "{{ prosody_config_dir }}"
state: directory
@ -203,7 +204,7 @@
state: directory
mode: 0755
- name: Ensure prosody certs dir exists
- name: Ensure prosody conf.d dir exists
ansible.builtin.file:
path: "{{ prosody_config_dir }}/conf.d"
state: directory
@ -234,7 +235,7 @@
- Restart prosody
- name: Ensure container for prosody XMPP server is running
docker_container:
community.docker.docker_container:
name: prosody
image: "{{ prosody_image }}"
pull: true
@ -256,7 +257,7 @@
- name: Ensure container for static XMPP website is running
docker_container:
community.docker.docker_container:
name: jabber-static-website
image: "{{ prosody_web_image }}"
pull: true
@ -276,7 +277,7 @@
- name: Setup proxy site {{ prosody_domain_name }}
# point to static website for now
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: "{{ prosody_domain_name }}"
@ -298,7 +299,7 @@
- hedgedoc
- name: Ensure the hedgedoc directories exist
file:
ansible.builtin.file:
path: "{{ item.path }}"
mode: "{{ item.mode }}"
state: directory
@ -311,7 +312,7 @@
- hedgedoc
- name: Setup docker network
docker_network:
community.docker.docker_network:
name: hedgedocnet
state: present
internal: true
@ -319,7 +320,7 @@
- hedgedoc
- name: Install HedgeDoc database container
docker_container:
community.docker.docker_container:
name: hedgedocdb
image: "{{ hedgedoc_db_image }}"
pull: true
@ -339,7 +340,7 @@
- hedgedoc
- name: Ensure container for hedgedoc is running
docker_container:
community.docker.docker_container:
name: hedgedoc
image: "{{ hedgedoc_image }}"
pull: true
@ -371,7 +372,7 @@
- hedgedoc
- name: Setup proxy site "{{ hedgedoc_domain_name }}"
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: "{{ hedgedoc_domain_name }}"
@ -380,7 +381,7 @@
- hedgedoc
- name: Ensure the influxdb directories exist
file:
ansible.builtin.file:
path: "{{ item }}"
mode: 0700
state: directory
@ -390,7 +391,7 @@
- "{{ data_dir }}/influxdb/cfg"
- name: Ensure container for influxdb is running
docker_container:
community.docker.docker_container:
name: influxdb
image: "{{ influxdb_image }}"
pull: true
@ -410,7 +411,7 @@
- "{{ data_dir }}/influxdb/cfg:/etc/influxdb2"
- name: Setup proxy site {{ influxdb_domain_name }}
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: "{{ influxdb_domain_name }}"
@ -435,7 +436,7 @@
- redmine
- name: Setup Redmine docker network
docker_network:
community.docker.docker_network:
name: redminenet
state: present
internal: true
@ -443,7 +444,7 @@
- redmine
- name: Setup Redmine MySQL container
docker_container:
community.docker.docker_container:
name: redminedb
image: "{{ redmine_mysql_image }}"
pull: true
@ -463,7 +464,7 @@
- redmine
- name: Setup Redmine container
docker_container:
community.docker.docker_container:
name: redmine
image: "{{ redmine_image }}"
pull: true
@ -489,7 +490,7 @@
- redmine
- name: Setup proxy site "{{ redmine_domain_name }}"
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: "{{ redmine_domain_name }}"
@ -498,7 +499,7 @@
- redmine
- name: Ensure the uptime-kuma directories exist
file:
ansible.builtin.file:
path: "{{ item }}"
mode: "0755"
state: directory
@ -508,7 +509,7 @@
- uptimekuma
- name: Ensure container for uptime-kuma is running
docker_container:
community.docker.docker_container:
name: uptime-kuma
image: "{{ uptimekuma_image }}"
pull: true
@ -525,7 +526,7 @@
- uptimekuma
- name: Setup proxy site "{{ uptimekuma_domain_name }}"
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: "{{ uptimekuma_domain_name }}"
@ -534,7 +535,7 @@
- uptimekuma
- name: Ensure the grafana directories exist
file:
ansible.builtin.file:
path: "{{ item.path }}"
owner: "{{ item.owner | default('root') }}"
mode: "{{ item.mode }}"
@ -551,7 +552,7 @@
- grafana
- name: Ensure container for grafana is running
docker_container:
community.docker.docker_container:
name: grafana
image: "{{ grafana_image }}"
pull: true
@ -572,7 +573,7 @@
- grafana
- name: Setup proxy site "{{ grafana_domain_name }}"
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: "{{ grafana_domain_name }}"
@ -582,7 +583,7 @@
- grafana
- name: Ensure the homebox directories exist
file:
ansible.builtin.file:
path: "{{ item.path }}"
owner: "{{ item.owner | default('root') }}"
mode: "{{ item.mode }}"
@ -596,7 +597,7 @@
- homebox
- name: Ensure container for homebox is running
docker_container:
community.docker.docker_container:
name: homebox
image: "{{ homebox_image }}"
pull: true
@ -616,7 +617,7 @@
- homebox
- name: Setup proxy site {{ homebox_domain_name }}
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: "{{ homebox_domain_name }}"
@ -626,7 +627,7 @@
- homebox
- name: Setup proxy site spaceapi.n39.eu
template:
ansible.builtin.template:
src: templates/pottwal/spaceapi-apache-site.j2
dest: /etc/apache2/sites-available/spaceapi.n39.eu.conf
mode: "0644"
@ -637,12 +638,13 @@
tags:
- spaceapi
# Renovate configuration is sourced from `renovate.json` in each repository
- name: Ensure renovate bot cronjob is present
ansible.builtin.template:
src: templates/pottwal/renovate-cron.j2
dest: /etc/cron.hourly/renovate-bot
mode: "0700"
notify: reload cron
notify: Reload cron
tags:
- renovate
@ -654,14 +656,14 @@
restart: yes
- name: Restart apache2
service:
ansible.builtin.service:
name: apache2
state: restarted
- name: reload cron
- name: Reload cron
ansible.builtin.shell:
cmd: service cron reload
# Use the shell call because the task sometimes has problems finding the service state
# service:
# ansible.builtin.service:
# name: cron
# state: restarted

View file

@ -1,5 +1,6 @@
---
- hosts: radon.n39.eu
- name: Setup things on host 'radon' (services for space automation)
hosts: radon.n39.eu
become: true
vars:
@ -7,7 +8,7 @@
data_dir: "/srv/data"
mosquitto_image: eclipse-mosquitto:2.0.20
mosquitto_image: eclipse-mosquitto:2.0.21
mosquitto_data: "{{ data_dir }}/mosquitto"
nodered_image: nodered/node-red:3.0.1-1-18
@ -37,7 +38,7 @@
tasks:
- name: Ensure the mosquitto directories exist
file:
ansible.builtin.file:
path: "{{ item }}"
mode: 0755
state: directory
@ -49,16 +50,16 @@
- mosquitto
- name: Make sure mosquitto config is there
template:
ansible.builtin.template:
src: "templates/mosquitto.conf.j2"
dest: "{{ mosquitto_data }}/config/mosquitto.conf"
mode: 0644
notify: restart mosquitto
notify: Restart mosquitto container
tags:
- mosquitto
- name: Ensure mosquitto is running
docker_container:
community.docker.docker_container:
name: mosquitto
image: "{{ mosquitto_image }}"
pull: true
@ -88,7 +89,7 @@
when: not nodered_dir.stat.exists
- name: Ensure nodered is running
docker_container:
community.docker.docker_container:
name: nodered
image: "{{ nodered_image }}"
pull: true
@ -108,7 +109,7 @@
restart_policy: unless-stopped
- name: Setup proxy site nodered.n39.eu
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: "nodered.n39.eu"
@ -129,7 +130,7 @@
- rabbitmq
- name: Ensure rabbitmq docker container is running
docker_container:
community.docker.docker_container:
name: rabbitmq
image: "{{ rabbitmq_image }}"
ports:
@ -150,7 +151,7 @@
- rabbitmq
- name: Setup proxy site rabbitmq.n39.eu
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: "rabbitmq.n39.eu"
@ -159,7 +160,7 @@
- rabbitmq
- name: Ensure Power Meter Pulse Gateway for 19i room is running
docker_container:
community.docker.docker_container:
name: pwr-meter-pulse-gw-19i
image: "{{ pwr_meter_pulse_gw_image }}"
ports:
@ -177,7 +178,7 @@
restart_policy: unless-stopped
- name: Setup proxy site pwr-meter-pulse-gw-19i.svc.n39.eu
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: "pwr-meter-pulse-gw-19i.svc.n39.eu"
@ -185,7 +186,7 @@
- name: Setup docker container for BrotherQL Web UI printer
docker_container:
community.docker.docker_container:
name: brotherql-web
image: dersimn/brother_ql_web:2.1.9-alpine
pull: true
@ -201,7 +202,7 @@
- labelprinter
- name: Setup proxy site labelprinter.n39.eu
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: labelprinter.n39.eu
@ -210,9 +211,9 @@
- labelprinter
- name: Setup docker container for Grafana Screenshots
docker_container:
community.docker.docker_container:
name: grafana-screenshot
image: mrtux/grafana-screenshot:0.1.1
image: mrtux/grafana-screenshot:0.1.3
pull: true
restart_policy: unless-stopped
detach: yes
@ -226,8 +227,8 @@
- grafana-screenshot
handlers:
- name: restart mosquitto
docker_container:
- name: Restart mosquitto container
community.docker.docker_container:
name: mosquitto
state: started
restart: yes

View file

@ -1,5 +1,6 @@
---
- hosts: tau.netz39.de
- name: Setup things on host 'tau' (vserver for wiki etc.)
hosts: tau.netz39.de
become: true
vars:
@ -25,7 +26,7 @@
tasks:
- name: Setup docker network
docker_network:
community.docker.docker_network:
name: dockernet
driver: bridge
ipam_config:
@ -34,7 +35,7 @@
state: present
- name: Setup Dehydrated
include_role:
ansible.builtin.include_role:
name: 24367dfa.dehydrated
vars:
dehydrated_contact_email: "{{ server_admin }}"
@ -51,14 +52,14 @@
deploy_challenge_hook: "/bin/systemctl restart apache2"
- name: Setup proxy site testredmine.netz39.de
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: testredmine.netz39.de
proxy_port: 9004
- name: Setup phpmyadmin
docker_container:
community.docker.docker_container:
name: phpmyadmin
state: started
image: phpmyadmin:5.2
@ -75,7 +76,7 @@
- 9001:80
- name: Setup proxy site mysql.adm.netz39.de
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: mysql.adm.netz39.de
@ -85,20 +86,20 @@
- name: Check if Docker Registry auth dir exists
ansible.builtin.stat:
path: "{{ data_dir }}/registry/auth"
register: docker_dir
- name: Fail if docker registry data dir does not exist
register: docker_registry_auth_dir
- name: Fail if Docker Registry auth dir does not exist
ansible.builtin.fail:
msg: "Docker Registry auth dir is missing, please restore from the backup!"
when: not docker_dir.stat.exists
when: not docker_registry_auth_dir.stat.exists
- name: Ensure the Docker Registry data directory exists
# This may not be part of the backup
file:
ansible.builtin.file:
path: "{{ data_dir }}/registry/data"
state: directory
mode: "0755"
- name: Setup Docker Registry Container
docker_container:
community.docker.docker_container:
name: registry
image: registry:2
pull: true
@ -117,7 +118,7 @@
- "{{ data_dir }}/registry/auth:/auth:rw"
- name: Setup proxy site for the Docker Registry
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: "{{ docker_registry_domain }}"
@ -146,7 +147,7 @@
- dokuwiki
- name: Setup Dokuwiki Container
docker_container:
community.docker.docker_container:
name: dokuwiki
image: "{{ dokuwiki_image }}"
pull: true
@ -165,7 +166,7 @@
- dokuwiki
- name: Setup proxy site for Dokuwiki
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: "{{ dokuwiki_domain }}"
@ -175,7 +176,7 @@
- name: Setup container for secondary FFMD DNS
docker_container:
community.docker.docker_container:
name: bind9-md-freifunk-net
image: ffmd/bind9-md-freifunk-net:v2022122301
pull: true
@ -190,7 +191,7 @@
- ffmd-dns
- name: Setup forwarding for Discord invite
include_role:
ansible.builtin.include_role:
name: setup_http_site_forward
vars:
site_name: "{{ discord_invite_domain }}"

View file

@ -1,6 +1,7 @@
---
# this is for a dedicated vm just hosting the unifi controller.
- hosts: unicorn.n39.eu
- name: Setup things on host 'unicorn' (vm for ubiquiti unifi controller)
hosts: unicorn.n39.eu
become: true
vars:
ansible_python_interpreter: /usr/bin/python3
@ -11,7 +12,7 @@
tasks:
- name: Setup the docker container for unifi-controller
docker_container:
community.docker.docker_container:
name: unifi-controller
image: jacobalberty/unifi:v9.0.114
state: started

View file

@ -1,12 +1,9 @@
---
- hosts: wittgenstein.n39.eu
- name: Setup things on host 'wittgenstein' (raspberry pi for ampel and spaceapi)
hosts: wittgenstein.n39.eu
become: true
roles:
- role: netz39.host_docker
vars:
docker_data_root: "/srv/docker"
docker_cron_image_prune: true
- role: apache
- role: apache_letsencrypt # Uses configuration from dehydrated setup
- role: 24367dfa.dehydrated
@ -133,7 +130,7 @@
### Space API
- name: Setup the SpaceAPI Docker container
docker_container:
community.docker.docker_container:
name: spaceapi
image: "{{ spaceapi_image }}"
pull: true
@ -152,7 +149,7 @@
- spaceapi
- name: Setup the Ampel Controller Docker container
docker_container:
community.docker.docker_container:
name: ampelcontroller
image: "{{ ampelcontroller_image }}"
pull: true

View file

@ -12,11 +12,11 @@ cleanuri_amqp_vhost: "/cleanuri"
forgejo_host_port: 9091
forgejo_ssh_port: 2222
forgejo_domain_name: git.n39.eu
forgejo_image: codeberg.org/forgejo/forgejo:10.0.1
forgejo_image: codeberg.org/forgejo/forgejo:10.0.3
shlink_host_port: 8083
shlink_domain_name: sl.n39.eu
shlink_image: shlinkio/shlink:4.4.5
shlink_image: shlinkio/shlink:4.4.6
shlink_initial_api_key: "{{ vault_shlink_initial_api_key }}"
shlink_postgres_password: "{{ vault_shlink_postgres_password }}"
@ -28,7 +28,7 @@ hedgedoc_postgres_password: "{{ vault_hedgedoc_postgres_password }}"
redmine_host_port: 8087
redmine_domain_name: redmine.n39.eu
redmine_image: redmine:6.0.3
redmine_image: redmine:6.0.4
redmine_mysql_image: mysql:9.2
redmine_database: redmine
redmine_database_password: "{{ vault_redmine_database_password }}"
@ -52,14 +52,14 @@ uptimekuma_image: louislam/uptime-kuma:1.23.16
grafana_host_port: 8089
grafana_domain_name: grafana.n39.eu
grafana_image: grafana/grafana:11.5.2
grafana_image: grafana/grafana:11.6.0
grafana_admin_password: "{{ vault_grafana_admin_password }}"
homebox_host_port: 8092
homebox_domain_name: inventory.n39.eu
homebox_image: ghcr.io/hay-kot/homebox:v0.10.3
renovate_image: renovate/renovate:39.180.2
renovate_image: renovate/renovate:39.220.1
renovate_forgejo_pat: "{{ vault_renovate_forgejo_pat }}"
renovate_github_pat: "{{ vault_renovate_github_pat }}"
renovate_git_user: "Renovate Bot <accounts+renovatebot@netz39.de>"

View file

@ -11,7 +11,7 @@ spaceapi_image: netz39/spaceapi-service:0.1.1
spaceapi_topic_status: "Netz39/SpaceAPI/isOpen"
spaceapi_topic_lastchange: "Netz39/SpaceAPI/lastchange"
ampelcontroller_image: netz39/ampel-controller:0.1.0
ampelcontroller_image: netz39/ampel-controller:0.2.0
topic_lever_state: "Netz39/Things/StatusSwitch/Lever/State"
topic_door_events: "Netz39/Things/Door/Events"
topic_traffic_light: "Netz39/Things/Ampel/Light"

View file

@ -30,6 +30,7 @@ all:
radon.n39.eu:
tau.netz39.de:
unicorn.n39.eu:
wittgenstein.n39.eu:
proxmox:
hosts:
holmium.n39.eu:

View file

@ -15,8 +15,10 @@
],
"packageRules": [
{
"matchDatasources": ["docker"],
"matchPackageNames": ["renovate/renovate"],
"schedule": [ "on friday" ]
"schedule": [ "before 1am on friday" ],
"automerge": true
}
]
}

View file

@ -1,13 +1,11 @@
---
roles:
- src: hifis.unattended_upgrades
version: v3.2.1
- name: adriagalin.timezone
src: git+https://github.com/adriagalin/ansible.timezone.git
version: 4.0.0
- name: 24367dfa.dehydrated
src: git+https://github.com/24367dfa/ansible-role-dehydrated.git
version: 2.0.0
version: 2.1.0
- name: penguineer.dehydrated_cron
src: https://github.com/penguineer/ansible-role-dehydrated_cron.git
version: v1.1.0
@ -15,11 +13,14 @@ roles:
src: git+https://github.com/maz3max/ble-keykeeper-role.git
version: v1.1.0
- src: lespocky.telegraf_docker_in_docker
version: v0.2.1
version: v0.2.2
- name: netz39.host_docker
src: git+https://github.com/netz39/ansible-role-host-docker.git
version: v0.4.0
version: v0.5.0
collections:
- name: community.grafana
version: 2.1.0
# for role 'hifis.toolkit.unattended_upgrades'
- name: hifis.toolkit
version: 5.3.0

View file

@ -1,6 +1,6 @@
# Handlers for role apache
---
- name: restart apache2
service:
- name: Restart apache2
ansible.builtin.service:
name: apache2
state: restarted

View file

@ -1,12 +1,12 @@
---
- name: Ensure Apache2 and modules are installed and up to date
apt:
ansible.builtin.apt:
name:
- apache2
state: present
- name: Ensure necessary modules are enabled
apache2_module:
community.general.apache2_module:
name: "{{ item }}"
state: present
with_items:
@ -23,7 +23,7 @@
mode: "0644"
owner: root
group: root
notify: restart apache2
notify: Restart apache2
- name: Add symlink to enable configuration
ansible.builtin.file:
@ -32,4 +32,4 @@
state: link
owner: root
group: root
notify: restart apache2
notify: Restart apache2

View file

@ -1,6 +1,6 @@
# Handlers for role apache_letsencrypt
---
- name: restart apache2
service:
- name: Restart apache2
ansible.builtin.service:
name: apache2
state: restarted

View file

@ -7,7 +7,7 @@
mode: "0644"
owner: root
group: root
notify: restart apache2
notify: Restart apache2
- name: Add symlink to enable configuration
ansible.builtin.file:
@ -17,4 +17,4 @@
mode: "0644"
owner: root
group: root
notify: restart apache2
notify: Restart apache2

View file

@ -19,7 +19,7 @@ cleanuri_amqp_canonizer: "canonizer"
cleanuri_amqp_retrieval: "extractor"
# Docker images
cleanuri_image_webui: mrtux/cleanuri-webui:0.2.1
cleanuri_image_apigateway: mrtux/cleanuri-apigateway:0.3.1
cleanuri_image_canonizer: mrtux/cleanuri-canonizer:0.5.0
cleanuri_image_extractor: mrtux/cleanuri-extractor:0.5.0
cleanuri_image_webui: mrtux/cleanuri-webui:0.2.2
cleanuri_image_apigateway: mrtux/cleanuri-apigateway:0.3.2
cleanuri_image_canonizer: mrtux/cleanuri-canonizer:0.5.3
cleanuri_image_extractor: mrtux/cleanuri-extractor:0.5.3

View file

@ -1,7 +1,7 @@
# Tasks for the cleanuri role
---
- name: Ensure CleanURI WebUI is running
docker_container:
community.docker.docker_container:
name: cleanuri-webui
image: "{{ cleanuri_image_webui }}"
pull: true
@ -15,7 +15,7 @@
REACT_APP_API_GATEWAY: "https://{{ cleanuri_api_domain }}"
- name: Setup proxy site for the CleanURI WebUI
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: "{{ cleanuri_ui_domain }}"
@ -23,7 +23,7 @@
- name: Ensure CleanURI API Gateway is running
docker_container:
community.docker.docker_container:
name: cleanuri-apigateway
image: "{{ cleanuri_image_apigateway }}"
pull: true
@ -42,7 +42,7 @@
GATEWAY_TASK_RK: "{{ cleanuri_amqp_canonizer }}"
- name: Ensure CleanURI Canonizer is running
docker_container:
community.docker.docker_container:
name: cleanuri-canonizer
image: "{{ cleanuri_image_canonizer }}"
pull: true
@ -59,7 +59,7 @@
EXTRACTOR_TASK_RK: "{{ cleanuri_amqp_retrieval }}"
- name: Ensure CleanURI Extractor is running
docker_container:
community.docker.docker_container:
name: cleanuri-extractor
image: "{{ cleanuri_image_extractor }}"
pull: true
@ -76,7 +76,7 @@
- name: Setup proxy site the CleanURI API Gateway
include_role:
ansible.builtin.include_role:
name: setup_http_site_proxy
vars:
site_name: "{{ cleanuri_api_domain }}"

View file

@ -1,6 +1,6 @@
# handlers file for cron-dd24-dyndns
---
- name: reload cron
- name: Reload cron
ansible.builtin.shell:
cmd: service cron reload
warn: no

View file

@ -1,6 +1,6 @@
---
- name: Make sure cron and curl are installed
apt:
ansible.builtin.apt:
name:
- cron
- curl
@ -13,6 +13,6 @@
owner: root
group: root
mode: "0644"
notify: reload cron
notify: Reload cron
# There is ansible.builtin.cron, but this makes configuration much
# more complicated, so we stick to the template.

View file

@ -1,6 +1,6 @@
# handlers file for desec_dyndns_cron
---
- name: reload cron
- name: Reload cron
ansible.builtin.shell:
cmd: service cron reload
warn: no

View file

@ -1,6 +1,6 @@
---
- name: Make sure cron and curl are installed
apt:
ansible.builtin.apt:
name:
- cron
- curl
@ -13,6 +13,6 @@
owner: root
group: root
mode: "0644"
notify: reload cron
notify: Reload cron
# There is ansible.builtin.cron, but this makes configuration much
# more complicated, so we stick to the template.

View file

@ -1,3 +1,3 @@
---
- name: reload nfs
command: 'exportfs -ra'
- name: Reload nfs
ansible.builtin.command: 'exportfs -ra'

View file

@ -14,7 +14,7 @@
state: present
fs_type: ext4
- name: ensure nfs mountpoints exist
- name: Ensure nfs mountpoints exist
ansible.builtin.file:
path: "{{ item.directory }}"
state: directory
@ -30,11 +30,11 @@
fstype: ext4
state: present
- name: template /etc/exports
- name: Put /etc/exports in place from template
ansible.builtin.template:
src: templates/exports.j2
dest: "/etc/exports"
notify: reload nfs
notify: Reload nfs
- name: Ensure nfs is running.
ansible.builtin.service: "name=nfs-kernel-server state=started enabled=yes"

View file

@ -1,7 +1,7 @@
# Handlers für nginx-https-proxy
---
- name: restart nginx
service:
- name: Restart nginx
ansible.builtin.service:
name: nginx
state: restarted
enabled: yes

View file

@ -18,7 +18,7 @@
# for SSL passthrough.
- name: Add nginx apt-key
apt_key:
ansible.builtin.apt_key:
url: https://nginx.org/keys/nginx_signing.key
state: present
@ -56,7 +56,7 @@
owner: root
group: root
mode: '0644'
notify: restart nginx
notify: Restart nginx
- name: Create directory for dehydrated forwardings
ansible.builtin.file:
@ -74,7 +74,7 @@
group: root
mode: '0644'
loop: "{{ ingress }}"
notify: restart nginx
notify: Restart nginx
- name: Setup nginx configuration
# Note the order here: The nginx configuration _needs_ he dehydrated-hosts
@ -86,4 +86,4 @@
owner: root
group: root
mode: '0644'
notify: restart nginx
notify: Restart nginx

View file

@ -1,5 +1,5 @@
---
- name: restart apache2
service:
- name: Restart apache2
ansible.builtin.service:
name: apache2
state: restarted

View file

@ -1,12 +1,12 @@
---
- name: Add or update Apache2 site
template:
ansible.builtin.template:
src: templates/apache-docker-forward-site.j2
dest: /etc/apache2/sites-available/{{ site_name }}.conf
notify: restart apache2
notify: Restart apache2
- name: Activate Apache2 site
command: a2ensite {{ site_name }}
ansible.builtin.command: a2ensite {{ site_name }}
args:
creates: /etc/apache2/sites-enabled/{{ site_name }}.conf
notify: restart apache2
notify: Restart apache2

View file

@ -1,5 +1,5 @@
---
- name: restart apache2
service:
- name: Restart apache2
ansible.builtin.service:
name: apache2
state: restarted

View file

@ -1,13 +1,13 @@
---
- name: Add or update Apache2 site
template:
ansible.builtin.template:
src: templates/apache-docker-proxy-site.j2
dest: /etc/apache2/sites-available/{{ site_name }}.conf
mode: "0644"
notify: restart apache2
notify: Restart apache2
- name: Activate Apache2 site
command: a2ensite {{ site_name }}
ansible.builtin.command: a2ensite {{ site_name }}
args:
creates: /etc/apache2/sites-enabled/{{ site_name }}.conf
notify: restart apache2
notify: Restart apache2

View file

@ -1,3 +1,3 @@
---
- name: Update aliases
shell: which newaliases && newaliases || true
ansible.builtin.shell: which newaliases && newaliases || true

View file

@ -1,12 +1,12 @@
---
- name: Ensure sudo is installed
package:
ansible.builtin.package:
name:
- sudo
state: present
- name: Configure group sudo for sudoers without password
lineinfile:
ansible.builtin.lineinfile:
path: /etc/sudoers
state: present
regexp: '^%sudo\s'
@ -14,7 +14,7 @@
validate: /usr/sbin/visudo -cf %s
- name: Add users | create users' shell and home dir
user:
ansible.builtin.user:
name: "{{ item.logname }}"
shell: /bin/bash
createhome: yes
@ -22,7 +22,7 @@
with_items: "{{ users }}"
- name: Add authorized keys for user
authorized_key:
ansible.posix.authorized_key:
user: "{{ item.0.logname }}"
key: "{{ item.1 }}"
state: present
@ -32,7 +32,7 @@
- skip_missing: true
- name: Place user in sudo group
user:
ansible.builtin.user:
name: "{{ item.logname }}"
groups: [sudo]
append: yes
@ -40,12 +40,12 @@
with_items: "{{ users }}"
- name: Check if /etc/aliases exists
stat:
ansible.builtin.stat:
path: /etc/aliases
register: aliases
- name: Set system email alias
lineinfile:
ansible.builtin.lineinfile:
path: /etc/aliases
state: present
regexp: "^{{ item.logname }}:"

View file

@ -1,21 +1,21 @@
---
- name: configure local ssh to access n39 hosts
- name: Configure local ssh to access n39 hosts
hosts: localhost
tasks:
- name: ensure {{ lookup('env', 'HOME') }}/.ssh/config.d/ dir is present
- name: Ensure $HOME/.ssh/config.d/ dir is present
ansible.builtin.file:
path: "{{ lookup('env', 'HOME') }}/.ssh/config.d/"
state: directory
delegate_to: localhost
- name: template ssh config for access to internal systems
- name: Put ssh config for access to n39 internal systems in place
ansible.builtin.template:
src: templates/ssh_config.j2
dest: "{{ lookup('env', 'HOME') }}/.ssh/config.d/n39_config"
delegate_to: localhost
- name: ensure that n39 access config is included
- name: Ensure that n39 access config is included
ansible.builtin.lineinfile:
path: ~/.ssh/config
insertbefore: BOF