From 072b5bf4eba5241d729bf4534e4e246808d33ac6 Mon Sep 17 00:00:00 2001 From: Tobias Petrich Date: Wed, 23 Apr 2025 13:13:41 +0200 Subject: [PATCH] add task to create service directories --- ansible/deploy_services.yml | 15 +++++++++++++++ .../rootless-podman-service/defaults/main.yml | 1 + .../tasks/create_btrfs_subvolume.yml | 2 +- .../tasks/create_service_directories.yml | 16 ++++++++++++++++ ansible/rootless-podman-service/tasks/main.yml | 4 ++++ 5 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 ansible/rootless-podman-service/tasks/create_service_directories.yml diff --git a/ansible/deploy_services.yml b/ansible/deploy_services.yml index 17e8f0c..123ba05 100644 --- a/ansible/deploy_services.yml +++ b/ansible/deploy_services.yml @@ -80,6 +80,9 @@ service_name: "nextcloud" systemd_service_name: "nextcloud-pod" quadlet_template_src: "./my_service_templates" + service_directories: + - db + - data - name: Deploy paperless include_role: name: rootless-podman-service @@ -87,6 +90,13 @@ service_name: "paperless" systemd_service_name: "paperless-pod" quadlet_template_src: "./my_service_templates" + service_directories: + - br + - db + - data + - media + - export + - consume - name: Deploy bookstack include_role: name: rootless-podman-service @@ -94,6 +104,9 @@ service_name: "bookstack" systemd_service_name: "bookstack-pod" quadlet_template_src: "./my_service_templates" + service_directories: + - db + - data - name: Deploy rustdesk include_role: name: rootless-podman-service @@ -101,3 +114,5 @@ service_name: "rustdesk" systemd_service_name: "rustdesk-pod" quadlet_template_src: "./my_service_templates" + service_directories: + - data diff --git a/ansible/rootless-podman-service/defaults/main.yml b/ansible/rootless-podman-service/defaults/main.yml index 126c2bd..23eb656 100644 --- a/ansible/rootless-podman-service/defaults/main.yml +++ b/ansible/rootless-podman-service/defaults/main.yml @@ -4,3 +4,4 @@ systemd_service_name: "default_service" btrfs_base_path: "/var/vol" quadlet_template_src: "./templates" force_systemd_restart: false +service_directories: [] diff --git a/ansible/rootless-podman-service/tasks/create_btrfs_subvolume.yml b/ansible/rootless-podman-service/tasks/create_btrfs_subvolume.yml index 827c073..aa08e7e 100644 --- a/ansible/rootless-podman-service/tasks/create_btrfs_subvolume.yml +++ b/ansible/rootless-podman-service/tasks/create_btrfs_subvolume.yml @@ -15,4 +15,4 @@ ansible.builtin.file: path: "{{ btrfs_base_path }}/{{ service_name }}" owner: "{{ service_name }}" - group: "{{ service_name }}" \ No newline at end of file + group: "{{ service_name }}" diff --git a/ansible/rootless-podman-service/tasks/create_service_directories.yml b/ansible/rootless-podman-service/tasks/create_service_directories.yml new file mode 100644 index 0000000..bd9d937 --- /dev/null +++ b/ansible/rootless-podman-service/tasks/create_service_directories.yml @@ -0,0 +1,16 @@ +--- +- name: Check if service directories exist + ansible.builtin.stat: + path: "{{ btrfs_base_path }}/{{ service_name }}/{{ item }}" + loop: "{{ service_directories }}" + register: directory_stats + +- name: Create service directories in BTRFS subvolume (only if they don't exist) + ansible.builtin.file: + path: "{{ btrfs_base_path }}/{{ service_name }}/{{ item.item }}" + state: directory + owner: "{{ service_name }}" + group: "{{ service_name }}" + mode: '0755' + loop: "{{ directory_stats.results }}" + when: not item.stat.exists diff --git a/ansible/rootless-podman-service/tasks/main.yml b/ansible/rootless-podman-service/tasks/main.yml index bae623f..92780c6 100644 --- a/ansible/rootless-podman-service/tasks/main.yml +++ b/ansible/rootless-podman-service/tasks/main.yml @@ -5,6 +5,10 @@ - name: Create Btrfs subvolume include_tasks: create_btrfs_subvolume.yml +- name: Create service directories + include_tasks: create_service_directories.yml + when: service_directories | length > 0 + - name: Enable linger for the user include_tasks: enable_linger.yml