--- - name: install pleroma instance config template: src: "config.exs.j2" dest: "/etc/pleroma/{{pleroma_instance}}.config.exs" owner: "pleroma" group: "pleroma" mode: "0600" become: yes notify: restart pleroma instance - name: create instance data directory become: yes file: path: "{{item}}" state: "directory" owner: "pleroma" group: "pleroma" mode: "0755" loop: - "{{pleroma_data_dir}}/{{pleroma_instance}}" - "{{pleroma_data_dir}}/{{pleroma_instance}}/uploads" - "{{pleroma_data_dir}}/{{pleroma_instance}}/static" - "{{pleroma_data_dir}}/{{pleroma_instance}}/static/static" - "{{pleroma_data_dir}}/{{pleroma_instance}}/static/static/themes" - "{{pleroma_data_dir}}/{{pleroma_instance}}/tzdata" - name: install pleroma db schema file become: yes template: src: "setup_db.psql.j2" dest: "/tmp/setup_db_{{pleroma_instance}}.psql" owner: "{{pleroma_db_superuser}}" group: "{{pleroma_db_superuser}}" mode: "0600" changed_when: false - name: install pleroma psql become: yes become_user: "{{pleroma_db_superuser}}" command: "psql -f /tmp/setup_db_{{pleroma_instance}}.psql" changed_when: false no_log: true - name: install pleroma fe theme become: yes copy: src: "files/{{pleroma_link_host}}/{{pleroma_fe_theme}}.json" dest: "{{pleroma_data_dir}}/{{pleroma_instance}}/static/static/themes/{{pleroma_fe_theme}}.json" owner: "pleroma" group: "pleroma" mode: "0644" when: pleroma_fe_theme is defined - name: install pleroma styles index become: yes copy: src: "files/{{pleroma_link_host}}/styles.json" dest: "{{pleroma_data_dir}}/{{pleroma_instance}}/static/styles.json" owner: "pleroma" group: "pleroma" mode: "0644" when: pleroma_fe_theme is defined # Always, not just on a fresh install: /opt/pleroma's release binary is # shared across every pleroma instance on a host, but each instance has its # own database. installed_version (install.yaml) only reflects whether THIS # run installed a new shared release, not whether THIS instance's db has # been migrated against it, so gating migrate on that skipped it for every # instance but whichever one's play happened to run first after an upgrade, # leaving the others crash-looping on "Unapplied Migrations detected". # pleroma_ctl migrate is a no-op when nothing's pending, so there's no # reason to skip it. Runs before starting the service so an upgrade doesn't # briefly crash-loop before migrating. - name: check if pleroma binary is present stat: path: "/opt/pleroma/bin/pleroma_ctl" register: pleroma_binary - name: migrate db become: yes command: "/opt/pleroma/bin/pleroma_ctl migrate" args: chdir: "/opt/pleroma/" environment: PLEROMA_CONFIG_PATH: "/etc/pleroma/{{pleroma_instance}}.config.exs" when: pleroma_binary.stat.exists changed_when: false - name: ensure pleroma instance is enabled and started become: yes systemd: name="pleroma@{{pleroma_instance}}.service" enabled="yes" state="started"