summaryrefslogtreecommitdiff
path: root/roles/storage/luks/base/tasks/main.yml
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2024-01-07 00:08:17 +0100
committerChristian Pointner <equinox@spreadspace.org>2024-01-07 00:08:17 +0100
commit67d5f5c27727e04d8f8a5ed20e79d5706cbbf1cb (patch)
tree56456abe274ed1beb0582c5692689c5ccbf4f983 /roles/storage/luks/base/tasks/main.yml
parentupdate collabora and bump nextcloud versions (diff)
refactor: storage roles
Diffstat (limited to 'roles/storage/luks/base/tasks/main.yml')
-rw-r--r--roles/storage/luks/base/tasks/main.yml43
1 files changed, 43 insertions, 0 deletions
diff --git a/roles/storage/luks/base/tasks/main.yml b/roles/storage/luks/base/tasks/main.yml
new file mode 100644
index 00000000..7fe556a1
--- /dev/null
+++ b/roles/storage/luks/base/tasks/main.yml
@@ -0,0 +1,43 @@
+---
+- name: install cryptsetup packages
+ apt:
+ name: cryptsetup-bin
+ state: present
+
+- name: Create temporary build directory
+ tempfile:
+ state: directory
+ register: keyfile_dir
+ changed_when: False
+ check_mode: False
+
+- name: create luks volumes
+ block:
+ - name: write passphrases into temporary keyfiles
+ loop: "{{ luks_devices | dict2items }}"
+ loop_control:
+ label: "{{ item.key }}"
+ copy:
+ dest: "{{ keyfile_dir.path }}/{{ item.key }}"
+ content: "{{ item.value.passphrase }}"
+ mode: 0600
+ changed_when: False
+ check_mode: False
+
+ - name: create/open luks volumes
+ loop: "{{ luks_devices | dict2items }}"
+ loop_control:
+ label: "{{ item.key }} ({{ item.value.device }})"
+ luks_device:
+ name: "{{ item.key }}"
+ device: "{{ item.value.device }}"
+ keyfile: "{{ keyfile_dir.path }}/{{ item.key }}"
+ state: opened
+
+ always:
+ - name: remove base-directory for keyfiles
+ file:
+ path: "{{ keyfile_dir.path }}"
+ state: absent
+ changed_when: False
+ check_mode: False