From fff16ba3a2134f89f86377b7a073dfa2a3057e81 Mon Sep 17 00:00:00 2001 From: Fenris Wolf Date: Fri, 26 Sep 2025 01:00:26 +0200 Subject: [PATCH] [add] role:mimir --- roles/mimir/defaults/main.json | 19 +++++++ roles/mimir/tasks/main.json | 87 +++++++++++++++++++++++++++++++ roles/mimir/templates/mmr.json.j2 | 1 + 3 files changed, 107 insertions(+) create mode 100644 roles/mimir/defaults/main.json create mode 100644 roles/mimir/tasks/main.json create mode 100644 roles/mimir/templates/mmr.json.j2 diff --git a/roles/mimir/defaults/main.json b/roles/mimir/defaults/main.json new file mode 100644 index 0000000..842edc2 --- /dev/null +++ b/roles/mimir/defaults/main.json @@ -0,0 +1,19 @@ +{ + "var_mimir_directory": "/opt/mimir", + "var_mimir_user": "mimir", + "var_mimir_git_repository_url": "https://forgejo.ramsch.sx/misc/mimir-core", + "var_mimir_git_reference": "main", + "var_mimir_execution_hour": 4, + "var_mimir_conf": { + "version": "1", + "target": { + "kind": "local", + "parameters": { + "path": "/tmp/backup" + } + }, + "concerns": [ + ] + } +} + diff --git a/roles/mimir/tasks/main.json b/roles/mimir/tasks/main.json new file mode 100644 index 0000000..db17622 --- /dev/null +++ b/roles/mimir/tasks/main.json @@ -0,0 +1,87 @@ +[ + { + "name": "packages", + "become": true, + "ansible.builtin.apt": { + "update_cache": true, + "pkg": [ + "git", + "make", + "node-typescript", + "nodejs", + "rsync", + "borgbackup" + ] + } + }, + { + "name": "user and directory", + "become": true, + "ansible.builtin.user": { + "name": "{{var_mimir_user}}", + "create_home": true, + "home": "{{var_mimir_directory}}" + } + }, + { + "name": "adjust data directory", + "become": true, + "ansible.builtin.file": { + "group": "www-data", + "mode": "g+rwx" + } + }, + { + "name": "program | fetch", + "become": true, + "become_user": "{{var_mimir_user}}", + "ansible.builtin.git": { + "repo": "{{var_mimir_git_repository_url}}", + "version": "{{var_mimir_git_reference}}", + "dest": "/tmp/mimir-repo" + } + }, + { + "name": "program | build", + "become": true, + "become_user": "{{var_mimir_user}}", + "ansible.builtin.command": { + "chdir": "/tmp/mimir-repo", + "cmd": "tools/build" + } + }, + { + "name": "program | deploy", + "become": true, + "become_user": "{{var_mimir_user}}", + "ansible.builtin.command": { + "chdir": "/tmp/mimir-repo", + "cmd": "tools/deploy localhost --target-directory={{var_mimir_directory}}" + } + }, + { + "name": "conf", + "become": true, + "ansible.builtin.template": { + "src": "mmr.json.j2", + "dest": "{{var_mimir_directory}}/mmr.json", + "owner": "{{var_mimir_user}}" + } + }, + { + "name": "cronjob", + "become": true, + "ansible.builtin.cron": { + "state": "present", + "disabled": false, + "name": "mimir-backup from {{var_mimir_directory}}", + "minute": "0", + "hour": "{{var_mimir_execution_hour | string}}", + "day": "*", + "month": "*", + "weekday": "*", + "job": "${mimir_dir}/mimir -c ${mimir_dir}/mmr.json | bash" + } + } +] + diff --git a/roles/mimir/templates/mmr.json.j2 b/roles/mimir/templates/mmr.json.j2 new file mode 100644 index 0000000..89e34e7 --- /dev/null +++ b/roles/mimir/templates/mmr.json.j2 @@ -0,0 +1 @@ +{{var_munin_conf | to_json}}