ansible-role-pleroma/tasks/main.yml

76 lines
2.7 KiB
YAML

#!/usr/bin/env ansible-playbook
# vim:ft=ansible:
---
- name: set up system
block:
- name: install packages
apt: name=curl,python3-psycopg2,unzip,libmagic-dev,ncurses-bin
- name: assure pleroma uesr
user: name=pleroma system=yes home={{ pleroma_home }}
- name: assure operational directory
file: path={{ pleroma_home }} state=directory owner=pleroma group=pleroma mode="3775"
- name: assure systemd unit
template: src=pleroma.service dest=/etc/systemd/system/pleroma@.service
notify: restart pleroma
- name: set up pleroma
block:
- name: assure db extensions
postgresql_ext:
db: "{{ pleroma_db_name }}"
name: "{{ item }}"
login_host: "{{ pleroma_db_host }}"
login_user: "{{ pleroma_db_user }}"
login_pass: "{{ pleroma_db_pass }}"
loop:
- citext
- pg_trgm
- uuid-ossp
notify: restart pleroma
- name: get latest release
get_url: url={{ pleroma_download_url }} dest={{ pleroma_home }}/release.zip
register: dl
- name: install pleroma
block:
- name: stop pleroma
systemd: name=pleroma@{{ pleroma_name }} state=stopped
- name: unzip release
unarchive: src={{ pleroma_home }}/release.zip dest={{ pleroma_home }} remote_src=yes
- name: remove old release
file: path={{ pleroma_home }}/{{ item }} state=absent
loop:
- bin
- lib
- releases
- installation
- name: move new release in
shell: rsync -a {{ pleroma_home }}/release/* {{ pleroma_home }}/
- name: clean up
file: path={{ pleroma_home }}/release state=absent
- name: clean up ownership
file: path={{ pleroma_home }} owner=pleroma group=pleroma recurse=yes
when: dl is changed and pleroma_install
- name: assure directory structure
file: path={{ item }} state=directory owner=pleroma group=pleroma mode="0755"
loop:
- /etc/pleroma
- /opt/pleroma
- /var/lib/pleroma
- /var/lib/pleroma/static
- /var/lib/pleroma/uploads
- name: template out stub config
template: src=config.exs dest=/etc/pleroma/config.exs owner=pleroma group=pleroma mode="0640"
notify: restart pleroma
- name: migrate db
command: {{ pleroma_home }}/bin/pleroma_ctl migrate
args:
chdir: "{{ pleroma_home }}"
become: yes
become_user: pleroma
changed_when: false
- name: enable service
systemd: name=pleroma state=started enabled=yes
when: pleroma_enabled
- name: disable service
systemd: name=pleroma state=stopped enabled=no
when: not pleroma_enabled