Manage shared pipeline access with ACLs

This commit is contained in:
2026-09-15 00:14:40 +00:00
parent 901ae35662
commit dddc5ee884
2 changed files with 51 additions and 0 deletions

View File

@@ -1,4 +1,6 @@
---
collections:
- name: ansible.posix
version: 2.2.0
- name: community.general
version: 13.3.0

View File

@@ -1,4 +1,53 @@
---
- name: Install ACL support
become: true
ansible.builtin.apt:
name: acl
state: present
update_cache: true
cache_valid_time: 3600
- name: Converge access ACLs on Narratio writable roots
become: true
ansible.posix.acl:
path: "{{ item.0 }}"
etype: "{{ item.1.etype }}"
permissions: "{{ item.1.permissions }}"
state: present
loop: >-
{{
['/var/lib/narratio', '/var/spool/narratio', '/var/cache/narratio'] |
product([
{'etype': 'user', 'permissions': 'rwx'},
{'etype': 'group', 'permissions': 'rwx'},
{'etype': 'other', 'permissions': 'r-x'},
{'etype': 'mask', 'permissions': 'rwx'}
]) | list
}}
loop_control:
label: "{{ item.0 }} {{ item.1.etype }}::{{ item.1.permissions }}"
- name: Converge default ACLs on Narratio writable roots
become: true
ansible.posix.acl:
path: "{{ item.0 }}"
etype: "{{ item.1.etype }}"
permissions: "{{ item.1.permissions }}"
default: true
state: present
loop: >-
{{
['/var/lib/narratio', '/var/spool/narratio', '/var/cache/narratio'] |
product([
{'etype': 'user', 'permissions': 'rwx'},
{'etype': 'group', 'permissions': 'rwx'},
{'etype': 'other', 'permissions': 'r-x'},
{'etype': 'mask', 'permissions': 'rwx'}
]) | list
}}
loop_control:
label: "{{ item.0 }} default:{{ item.1.etype }}::{{ item.1.permissions }}"
- name: Create the prompt-library root
become: true
ansible.builtin.file: