Files
cole-maxwell1 7bbb5b08f9 ops(ansible): prepare rootless app deployment
Create the application user's Ansible temporary directory and rely on the Quadlet install configuration for service enablement.
2026-08-07 15:31:51 -05:00

71 lines
1.9 KiB
YAML

---
- name: Look up application user
ansible.builtin.getent:
database: passwd
key: "{{ app_user }}"
- name: Store application user ID
ansible.builtin.set_fact:
app_user_uid: "{{ ansible_facts.getent_passwd[app_user][1] }}"
- name: Create application user Ansible temporary directory
ansible.builtin.file:
path: "/home/{{ app_user }}/.ansible/tmp"
state: directory
owner: "{{ app_user }}"
group: "{{ app_user }}"
mode: "0700"
- name: Create Quadlet directory
ansible.builtin.file:
path: "/home/{{ app_user }}/.config/containers/systemd"
state: directory
owner: "{{ app_user }}"
group: "{{ app_user }}"
mode: "0700"
- name: Install protected application environment
ansible.builtin.template:
src: app.env.j2
dest: "/home/{{ app_user }}/.config/todo.env"
owner: "{{ app_user }}"
group: "{{ app_user }}"
mode: "0600"
no_log: true
- name: Authenticate to private registry
ansible.builtin.command:
argv:
- podman
- login
- --username
- "{{ registry_username }}"
- --password-stdin
- "{{ registry_server }}"
stdin: "{{ registry_password }}"
become_user: "{{ app_user }}"
environment:
XDG_RUNTIME_DIR: "/run/user/{{ app_user_uid }}"
changed_when: true
no_log: true
when:
- registry_username is defined
- registry_password is defined
- registry_server is defined
- name: Install application Quadlet
ansible.builtin.template:
src: app-todo.container.j2
dest: "/home/{{ app_user }}/.config/containers/systemd/app-todo.container"
owner: "{{ app_user }}"
group: "{{ app_user }}"
mode: "0644"
- name: Reload application user manager
ansible.builtin.command:
argv: [systemctl, --user, daemon-reload]
become_user: "{{ app_user }}"
environment:
XDG_RUNTIME_DIR: "/run/user/{{ app_user_uid }}"
changed_when: false