#SPDX-License-Identifier: MIT-0 --- # tasks file for mastodon - name: Create quadlet staging directory ansible.builtin.tempfile: state: directory prefix: mastodon-quadlets- register: mastodon_quadlet_tmp - name: Setup local directories ansible.builtin.file: name: "{{ item }}" 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 - name: Populate smtp variables ansible.builtin.include_vars: file: smtp.yml - 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: Install redis quadlet ansible.builtin.include_tasks: redis.yml - name: Install elasticsearch quadlet ansible.builtin.include_tasks: elasticsearch.yml - name: Install web quadlet ansible.builtin.include_tasks: web.yml - 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