Files
ansible-role-dnd-pipeline/tasks/main.yml

115 lines
3.3 KiB
YAML

---
- 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:
path: "{{ dnd_pipeline_prompt_library_root }}"
state: directory
owner: root
group: "{{ dnd_pipeline_runtime_group }}"
mode: "0755"
- name: Deploy the campaign registry
become: true
ansible.builtin.git:
repo: "{{ dnd_pipeline_campaigns_repository_url }}"
dest: "{{ dnd_pipeline_campaigns_root }}"
version: "{{ dnd_pipeline_campaigns_revision }}"
update: true
force: true
- name: Deploy the prompt library
become: true
ansible.builtin.git:
repo: "{{ dnd_pipeline_prompt_library_repository_url }}"
dest: "{{ dnd_pipeline_prompt_library_root }}"
version: "{{ dnd_pipeline_prompt_library_revision }}"
update: true
force: true
- name: Create Narratio configuration directories
become: true
ansible.builtin.file:
path: "/usr/local/etc/narratio/{{ item }}"
state: directory
owner: "{{ dnd_pipeline_runtime_user }}"
group: "{{ dnd_pipeline_runtime_group }}"
mode: "{{ dnd_pipeline_config_directory_mode }}"
loop:
- conf.d
- artifacts
- artifact-families
- profiles
- name: Deploy Narratio D&D configuration fragments
become: true
ansible.builtin.template:
src: "{{ item.src }}"
dest: "/usr/local/etc/narratio/{{ item.dest }}"
owner: "{{ dnd_pipeline_runtime_user }}"
group: "{{ dnd_pipeline_runtime_group }}"
mode: "{{ dnd_pipeline_config_file_mode }}"
loop:
- src: processing.yml.j2
dest: conf.d/processing.yml
- src: session-recap.yml.j2
dest: artifacts/session-recap.yml
- src: hostile-rumors.yml.j2
dest: artifacts/hostile-rumors.yml
- src: deranged-rumors.yml.j2
dest: artifacts/deranged-rumors.yml
- src: scene-map.yml.j2
dest: artifacts/scene-map.yml
- src: character-meta-analysis.yml.j2
dest: artifact-families/character-meta-analysis.yml
- src: testing.yml.j2
dest: profiles/testing.yml