Migrate to quadlets

This commit is contained in:
2026-07-09 11:46:56 +03:00
parent 1384f4375a
commit 6078cc2f35
15 changed files with 300 additions and 207 deletions

View File

@@ -2,12 +2,11 @@
---
# tasks file for mastodon
- name: Setup mastodon networks
containers.podman.podman_network:
name: "{{ item['key'] }}"
driver: "{{ item['value']['driver'] }}"
disable_dns: "{{ item['value']['disable_dns'] }}"
loop: "{{ mastodon_networks | dict2items }}"
- name: Create quadlet staging directory
ansible.builtin.tempfile:
state: directory
prefix: mastodon-quadlets-
register: mastodon_quadlet_tmp
- name: Setup local directories
ansible.builtin.file:
@@ -15,6 +14,10 @@
state: directory
loop: "{{ mastodon_local_dirs }}"
- name: Populate database variables
ansible.builtin.include_vars:
file: db.yml
- name: Populate active record variables
ansible.builtin.include_vars:
file: web.yml
@@ -23,17 +26,80 @@
ansible.builtin.include_vars:
file: smtp.yml
- name: Create database container instance
- name: Stop legacy generated services
ansible.builtin.systemd_service:
name: "{{ item }}"
state: stopped
enabled: false
scope: user
failed_when: false
loop:
- container-database.service
- container-redis.service
- container-mastodon.service
- container-sidekiq.service
- name: Remove legacy generated service files
ansible.builtin.file:
path: "~/.config/systemd/user/{{ item }}"
state: absent
loop:
- container-database.service
- container-redis.service
- container-mastodon.service
- container-sidekiq.service
- name: Stage mastodon network quadlets
ansible.builtin.copy:
src: "{{ item }}"
dest: "{{ mastodon_quadlet_tmp.path }}/{{ item }}"
mode: "0644"
loop:
- mastodon_internal.network
- mastodon_external.network
- name: Install mastodon network quadlets
containers.podman.podman_quadlet:
state: present
src: "{{ mastodon_quadlet_tmp.path }}/{{ item }}"
reload_systemd: false
loop:
- mastodon_internal.network
- mastodon_external.network
notify: Reload systemd user units
- name: Install database quadlet
ansible.builtin.include_tasks: db.yml
- name: Create redis container instance
- name: Install redis quadlet
ansible.builtin.include_tasks: redis.yml
- name: Create elasticsearch container instance
- name: Install elasticsearch quadlet
ansible.builtin.include_tasks: elasticsearch.yml
- name: Create web container instance
- name: Install web quadlet
ansible.builtin.include_tasks: web.yml
- name: Create sidekiq container instance
- name: Install sidekiq quadlet
ansible.builtin.include_tasks: sidekiq.yml
- name: Remove quadlet staging directory
ansible.builtin.file:
path: "{{ mastodon_quadlet_tmp.path }}"
state: absent
- name: Flush handlers so unit changes are reloaded before activation
ansible.builtin.meta: flush_handlers
- name: Activate mastodon services
ansible.builtin.systemd_service:
name: "{{ item }}"
state: started
enabled: true
scope: user
loop:
- database.service
- redis.service
- elasticsearch.service
- mastodon.service
- sidekiq.service