Compare commits

..

7 Commits

Author SHA1 Message Date
uumas
6d2d305fd0 caddy: Use firewalld 2025-09-14 03:02:59 +03:00
uumas
90ade1e766 Add readmes 2025-09-14 03:02:48 +03:00
uumas
f2840d79a7 prometheus_node_exporter: Allow listening on all 2025-09-14 03:02:09 +03:00
uumas
217b79b225 Add firewalld role 2025-09-14 03:01:52 +03:00
uumas
37066850a0 compatcheck: support macosx 2025-09-14 02:58:39 +03:00
uumas
7617edfdde borgmatic_config: Initialize repos 2025-09-14 02:58:15 +03:00
uumas
e4c8a2343a borgmatic: ignore unreachable backup target 2025-09-14 02:57:45 +03:00
19 changed files with 61 additions and 5 deletions

View File

@@ -0,0 +1,2 @@
This role enables automatic package updates.
It currently supports Debian and Ubuntu.

View File

@@ -0,0 +1 @@
Installs borgmatic

View File

@@ -2,6 +2,7 @@
- name: Gather facts - name: Gather facts
ansible.builtin.setup: ansible.builtin.setup:
delegate_facts: true delegate_facts: true
ignore_unreachable: true
retries: 3 retries: 3
- name: Add ssh key to authorized_keys - name: Add ssh key to authorized_keys

View File

@@ -0,0 +1 @@
Creates a bormatic configuration in /etc/borgmatic.d/ and creates the repos

View File

@@ -1,4 +1,10 @@
--- ---
- name: Initialize borgmatic
ansible.builtin.command:
cmd: borgmatic init --encryption repokey
register: _borgmatic_init_out
changed_when: _borgmatic_init_out.stdout | length > 0
- name: Restart borgmatic timer {{ borgmatic_config_name }} - name: Restart borgmatic timer {{ borgmatic_config_name }}
ansible.builtin.systemd_service: ansible.builtin.systemd_service:
name: "borgmatic@{{ borgmatic_config_name }}.timer" name: "borgmatic@{{ borgmatic_config_name }}.timer"

View File

@@ -18,6 +18,7 @@
dest: /etc/borgmatic.d/{{ borgmatic_config_name }}.yaml dest: /etc/borgmatic.d/{{ borgmatic_config_name }}.yaml
mode: "0600" mode: "0600"
no_log: true no_log: true
notify: Initialize borgmatic
- name: Add systemd timer for borgmatic {{ borgmatic_config_name }} - name: Add systemd timer for borgmatic {{ borgmatic_config_name }}
ansible.builtin.template: ansible.builtin.template:

View File

@@ -4,6 +4,7 @@ dependencies:
vars: vars:
compatcheck_supported_distributions: compatcheck_supported_distributions:
- name: debian - name: debian
version_min: 11 version_min: 12
- name: ubuntu - name: ubuntu
version_min: 22 version_min: 22
- role: uumas.general.firewalld

View File

@@ -41,3 +41,14 @@
validate: 'caddy validate --config %s --adapter caddyfile' validate: 'caddy validate --config %s --adapter caddyfile'
backup: true backup: true
notify: Reload caddy notify: Reload caddy
- name: Open ports for caddy
ansible.posix.firewalld:
service: "{{ item }}"
state: enabled
permanent: true
immediate: true
loop:
- http
- https
- http3

View File

@@ -22,6 +22,7 @@ argument_specs:
- ubuntu - ubuntu
- fedora - fedora
- archlinux - archlinux
- macosx
version_min: version_min:
description: Earliest supported major version. Allows any version if not specified. description: Earliest supported major version. Allows any version if not specified.
type: int type: int
@@ -31,7 +32,9 @@ argument_specs:
type: int type: int
required: false required: false
package_managers: package_managers:
description: List of supported package managers. Defaults to apt for debian and ubuntu, dnf for fedora, pacman for archlinux description: >-
List of supported package managers. Defaults to apt for debian and ubuntu,
dnf for fedora, pacman for archlinux, homebrew for macosx
type: list type: list
required: false required: false
elements: str elements: str
@@ -40,3 +43,4 @@ argument_specs:
- dnf - dnf
- pacman - pacman
- atomic_container - atomic_container
- homebrew

View File

@@ -5,4 +5,5 @@ _compatcheck_default_package_managers:
ubuntu: apt ubuntu: apt
fedora: dnf fedora: dnf
archlinux: pacman archlinux: pacman
macosx: homebrew
_compatcheck_default_package_manager: "{{ _compatcheck_default_package_managers[ansible_distribution | lower] }}" _compatcheck_default_package_manager: "{{ _compatcheck_default_package_managers[ansible_distribution | lower] }}"

View File

@@ -0,0 +1 @@
Installs firewalld

View File

@@ -0,0 +1,5 @@
---
argument_specs:
main:
description: Installs firewalld
options: {}

View File

@@ -0,0 +1,9 @@
---
dependencies:
- role: uumas.general.compatcheck
vars:
compatcheck_supported_distributions:
- name: debian
version_min: 12
- name: ubuntu
version_min: 22

View File

@@ -0,0 +1,4 @@
---
- name: Install firewalld
ansible.builtin.apt:
name: firewalld

View File

@@ -0,0 +1,2 @@
---
prometheus_node_exporter_local_network: ""

View File

@@ -6,5 +6,7 @@ argument_specs:
prometheus_node_exporter_local_network: prometheus_node_exporter_local_network:
description: >- description: >-
The local ipv4 network block, listen address is taken from this block. The local ipv4 network block, listen address is taken from this block.
If empty, listens on 0.0.0.0
type: str type: str
required: true required: false
default: ""

View File

@@ -0,0 +1,3 @@
---
dependencies:
- role: uumas.general.firewalld

View File

@@ -7,11 +7,12 @@
- name: debian - name: debian
version_min: 11 version_min: 11
- name: ubuntu - name: ubuntu
version_min: 24 version_min: 22
- name: Install prometheus node exporter - name: Install prometheus node exporter
ansible.builtin.apt: ansible.builtin.apt:
name: prometheus-node-exporter name: prometheus-node-exporter
install_recommends: false
- name: Set prometheus options in /etc/default/prometheus-node-exporter - name: Set prometheus options in /etc/default/prometheus-node-exporter
ansible.builtin.template: ansible.builtin.template:

View File

@@ -1 +1 @@
ARGS="--web.listen-address {{ (ansible_all_ipv4_addresses | ansible.utils.ipaddr(prometheus_node_exporter_local_network))[0] }}:9100 --collector.logind --collector.systemd --collector.processes" ARGS="--web.listen-address {{ (ansible_all_ipv4_addresses | ansible.utils.ipaddr(prometheus_node_exporter_local_network))[0] if prometheus_node_exporter_local_network | length > 0 else '0.0.0.0' }}:9100 --collector.logind --collector.systemd --collector.processes"