From 9d59101fbe52b0641b064404e10000e6b969b9a1 Mon Sep 17 00:00:00 2001 From: patrick Date: Thu, 16 Jul 2026 23:28:25 -0400 Subject: [PATCH] support per-item ownership/mode overrides in app_subdirectories; fix dir mode default --- roles/app/defaults/main.yml | 3 ++- roles/app/tasks/setup.yml | 16 +++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/roles/app/defaults/main.yml b/roles/app/defaults/main.yml index 3e10242..08f3092 100644 --- a/roles/app/defaults/main.yml +++ b/roles/app/defaults/main.yml @@ -2,7 +2,8 @@ app_dir: "{{ host_root_path }}/{{ app_name }}" app_uid: "{{ ansible_facts.user_uid }}" app_gid: "{{ ansible_facts.user_gid }}" -app_permission_mode: "0640" +app_permission_mode: "0640" # files (compose.yml, rendered templates) +app_dir_mode: "0755" # directories (app_dir and app_subdirectories) app_restart_policy: unless-stopped app_backup_path: "{{ backup_path }}/{{ app_name }}" diff --git a/roles/app/tasks/setup.yml b/roles/app/tasks/setup.yml index 7c0bea0..f47568f 100644 --- a/roles/app/tasks/setup.yml +++ b/roles/app/tasks/setup.yml @@ -72,15 +72,21 @@ state: directory owner: "{{ app_uid }}" group: "{{ app_gid }}" - mode: "{{ app_permission_mode }}" + mode: "{{ app_dir_mode }}" + # Items may be plain path strings, or dicts with per-item overrides: + # - /some/path # uses app_uid/app_gid/app_dir_mode + # - path: /some/path # same + # owner: 999 # per-item overrides for containers + # group: 999 # that expect a specific uid/gid + # mode: "0700" - name: Create application subdirectories ansible.builtin.file: - path: "{{ item }}" + path: "{{ item.path | default(item) }}" state: directory - owner: "{{ app_uid }}" - group: "{{ app_gid }}" - mode: "{{ app_permission_mode }}" + owner: "{{ item.owner | default(app_uid) }}" + group: "{{ item.group | default(app_gid) }}" + mode: "{{ item.mode | default(app_dir_mode) }}" loop: "{{ app_subdirectories }}" tags: [setup, deploy]