summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAhmed AbdelHalim <[email protected]>2026-06-27 00:33:35 +0200
committerAhmed AbdelHalim <[email protected]>2026-06-27 00:34:50 +0200
commit9c48ed9b1c68c5c719494fe62124c2ee9eb22191 (patch)
tree8c1cda52afd8eb55f4f61e1f71e14e8b9871db1e
parenta559d67db567c480647d3dbb67592c659fa67f76 (diff)
Add restic role w/testing
-rw-r--r--configure.yml1
-rw-r--r--host_vars/desktop.local.yml.example1
-rw-r--r--host_vars/pve.local.ymlbin728 -> 754 bytes
-rw-r--r--host_vars/pve.local.yml.example2
-rw-r--r--molecule/archlinux-gnome/converge.yml1
-rw-r--r--molecule/archlinux/converge.yml1
-rw-r--r--molecule/debian/converge.yml1
-rw-r--r--molecule/proxmox/converge.yml1
-rw-r--r--molecule/raspberrypi/converge.yml1
-rw-r--r--molecule/ubuntu/converge.yml1
-rw-r--r--roles/restic/defaults/main.yml2
-rw-r--r--roles/restic/meta/argument_specs.yml8
-rw-r--r--roles/restic/meta/main.yml18
-rw-r--r--roles/restic/tasks/main.yml12
14 files changed, 50 insertions, 0 deletions
diff --git a/configure.yml b/configure.yml
index 8cb3bb79..c876d287 100644
--- a/configure.yml
+++ b/configure.yml
@@ -127,3 +127,4 @@
- role: "dotfiles"
- role: "password_store"
- role: "vim"
+ - role: "restic"
diff --git a/host_vars/desktop.local.yml.example b/host_vars/desktop.local.yml.example
index ba2122ab..c1b4aff9 100644
--- a/host_vars/desktop.local.yml.example
+++ b/host_vars/desktop.local.yml.example
@@ -23,6 +23,7 @@ ansible_core_version: "2.20.1"
molecule_version: "25.9.0"
ansible_lint_version: "25.9.2"
yamllint_version: "1.37.1"
+restic_version: "0.19.0"
wireguard_connections:
wg-vpn1: |
diff --git a/host_vars/pve.local.yml b/host_vars/pve.local.yml
index 411f7c6e..d21e9240 100644
--- a/host_vars/pve.local.yml
+++ b/host_vars/pve.local.yml
Binary files differ
diff --git a/host_vars/pve.local.yml.example b/host_vars/pve.local.yml.example
index 0b211e4c..0e70d476 100644
--- a/host_vars/pve.local.yml.example
+++ b/host_vars/pve.local.yml.example
@@ -11,3 +11,5 @@ network_ipv4_dns: "10.0.0.254"
network_ipv6_address: "fd5c:fd8b:2b8c::253/64"
network_ipv6_gateway: "fd5c:fd8b:2b8c::254"
network_ipv6_dns: "fd5c:fd8b:2b8c::254"
+
+restic_version: "0.19.0"
diff --git a/molecule/archlinux-gnome/converge.yml b/molecule/archlinux-gnome/converge.yml
index e1c218c0..d6f04195 100644
--- a/molecule/archlinux-gnome/converge.yml
+++ b/molecule/archlinux-gnome/converge.yml
@@ -114,3 +114,4 @@
- role: "brightnessctl"
- role: "wiremix"
- role: "localsend"
+ - role: "restic"
diff --git a/molecule/archlinux/converge.yml b/molecule/archlinux/converge.yml
index 41968d07..3f9f121c 100644
--- a/molecule/archlinux/converge.yml
+++ b/molecule/archlinux/converge.yml
@@ -110,3 +110,4 @@
- role: "prometheus-node-exporter"
- role: "grafana"
- role: "localsend"
+ - role: "restic"
diff --git a/molecule/debian/converge.yml b/molecule/debian/converge.yml
index 6187cede..54750286 100644
--- a/molecule/debian/converge.yml
+++ b/molecule/debian/converge.yml
@@ -116,3 +116,4 @@
- role: "pipewire"
- role: "claude"
- role: "localsend"
+ - role: "restic"
diff --git a/molecule/proxmox/converge.yml b/molecule/proxmox/converge.yml
index ace4aa74..c8af9d75 100644
--- a/molecule/proxmox/converge.yml
+++ b/molecule/proxmox/converge.yml
@@ -62,3 +62,4 @@
- role: "dotfiles"
- role: "password_store"
- role: "vim"
+ - role: "restic"
diff --git a/molecule/raspberrypi/converge.yml b/molecule/raspberrypi/converge.yml
index 49f81392..c21c849f 100644
--- a/molecule/raspberrypi/converge.yml
+++ b/molecule/raspberrypi/converge.yml
@@ -117,3 +117,4 @@
- role: "pipewire"
- role: "claude"
- role: "localsend"
+ - role: "restic"
diff --git a/molecule/ubuntu/converge.yml b/molecule/ubuntu/converge.yml
index 9a834156..00d4e6bc 100644
--- a/molecule/ubuntu/converge.yml
+++ b/molecule/ubuntu/converge.yml
@@ -107,3 +107,4 @@
- role: "claude"
- role: "steam"
- role: "localsend"
+ - role: "restic"
diff --git a/roles/restic/defaults/main.yml b/roles/restic/defaults/main.yml
new file mode 100644
index 00000000..0b3fbd93
--- /dev/null
+++ b/roles/restic/defaults/main.yml
@@ -0,0 +1,2 @@
+---
+restic_version: "latest"
diff --git a/roles/restic/meta/argument_specs.yml b/roles/restic/meta/argument_specs.yml
new file mode 100644
index 00000000..4622a3f8
--- /dev/null
+++ b/roles/restic/meta/argument_specs.yml
@@ -0,0 +1,8 @@
+---
+argument_specs:
+ main:
+ options:
+ restic_version:
+ type: "str"
+ description: "Restic version to install via mise (e.g. 'latest', '0.17.3')"
+ default: "latest"
diff --git a/roles/restic/meta/main.yml b/roles/restic/meta/main.yml
new file mode 100644
index 00000000..539ca10d
--- /dev/null
+++ b/roles/restic/meta/main.yml
@@ -0,0 +1,18 @@
+---
+dependencies:
+ - role: "mise"
+galaxy_info:
+ author: "a14m"
+ description: "Install restic via mise"
+ license: "MIT"
+ min_ansible_version: "2.18"
+ platforms:
+ - name: "ArchLinux"
+ versions:
+ - "all"
+ - name: "Ubuntu"
+ versions:
+ - "noble"
+ - name: "Debian"
+ versions:
+ - "bookworm"
diff --git a/roles/restic/tasks/main.yml b/roles/restic/tasks/main.yml
new file mode 100644
index 00000000..ae82d3bc
--- /dev/null
+++ b/roles/restic/tasks/main.yml
@@ -0,0 +1,12 @@
+---
+- name: "Check installed restic versions"
+ ansible.builtin.command:
+ cmd: "mise ls restic"
+ register: restic_installed_versions
+ changed_when: false
+
+- name: "Install restic"
+ ansible.builtin.command:
+ cmd: "mise use --global restic@{{ restic_version }}"
+ changed_when: true
+ when: restic_version not in restic_installed_versions.stdout