There is also a problem with the configuration in that it's hard to upgrade running containers, I added a note explaining this.
57 lines
2.1 KiB
YAML
57 lines
2.1 KiB
YAML
---
|
|
- name: Include user role
|
|
ansible.builtin.include_role:
|
|
name: user
|
|
vars:
|
|
user_username: "{{ actual_username }}"
|
|
user_password: "{{ actual_password }}"
|
|
user_start_podman_restart: true
|
|
- name: Create a directory for holding actual's (volume) data
|
|
become: true
|
|
become_user: "{{ actual_username }}"
|
|
ansible.builtin.file:
|
|
path: "/home/{{ actual_username }}/actual_data"
|
|
state: directory
|
|
mode: '0700'
|
|
- name: Gather facts on the actual container
|
|
become: true
|
|
become_user: "{{ actual_username }}"
|
|
containers.podman.podman_container_info:
|
|
name: actual-server
|
|
register: actual_server_container_info
|
|
# This step doesn't work correctly when updating the contianer in any way. In this case it will simply skip the step.
|
|
# The easiest workaround is to remove the container altogether and rerun.
|
|
- name: Start the actual container with correct systemd linking
|
|
when: "'no such container' in actual_server_container_info.stderr"
|
|
become: true
|
|
become_user: "{{ actual_username }}"
|
|
block:
|
|
- name: Start the Actual container
|
|
containers.podman.podman_container:
|
|
name: actual-server
|
|
image: docker.io/actualbudget/actual-server:24.5.0
|
|
restart_policy: always
|
|
publish:
|
|
- 127.0.0.1:5006:5006
|
|
volumes:
|
|
- "/home/{{ actual_username }}/actual_data:/data"
|
|
state: stopped
|
|
# For more information on the systemd startup service, see: https://linuxhandbook.com/autostart-podman-containers/
|
|
generate_systemd:
|
|
path: "/home/{{ actual_username }}/.config/systemd/user/"
|
|
restart_policy: always
|
|
notify: Reload systemd (daemon-reload)
|
|
- name: Flush handlers
|
|
ansible.builtin.meta: flush_handlers
|
|
- name: Enable the newly created systemd service for user
|
|
ansible.builtin.systemd:
|
|
name: container-actual-server.service
|
|
state: started
|
|
enabled: true
|
|
scope: user
|
|
- name: Include simple-reverse-proxy role
|
|
ansible.builtin.include_role:
|
|
name: simple-reverse-proxy
|
|
vars:
|
|
simple_reverse_proxy_internal_port: 5006
|
|
simple_reverse_proxy_internal_subdomain: actual
|