Dan Anglin
cb22739b38
This commit allows instance owners to set a background image for their Pleroma instances. It copies the image from the ansible controller onto the target host and updates the Pleroma configuration. Owners can set the value for pleroma.config.frontend.background to set the background image. The default image is used if this value is not set.
108 lines
3 KiB
YAML
108 lines
3 KiB
YAML
---
|
|
- name: Ensure Pleroma dependencies are installed.
|
|
apk:
|
|
name: unzip, ncurses
|
|
state: present
|
|
|
|
- name: Ensure group '{{ pleroma_user.group }}' exists.
|
|
group:
|
|
gid: "{{ pleroma_user.id }}"
|
|
name: "{{ pleroma_user.group }}"
|
|
state: present
|
|
system: yes
|
|
|
|
- name: Ensure user '{{ pleroma_user.name }}' exists.
|
|
user:
|
|
group: "{{ pleroma_user.group }}"
|
|
home: "{{ pleroma_user.home }}"
|
|
name: "{{ pleroma_user.name }}"
|
|
shell: "{{ pleroma_user.shell }}"
|
|
state: present
|
|
system: yes
|
|
uid: "{{ pleroma_user.id }}"
|
|
|
|
- name: Ensure the Pleroma data and config directories exists.
|
|
file:
|
|
name: "{{ item }}"
|
|
state: directory
|
|
mode: '0700'
|
|
owner: "{{ pleroma_user.name }}"
|
|
group: "{{ pleroma_user.group }}"
|
|
loop:
|
|
- "{{ pleroma_config_dir }}"
|
|
- "{{ pleroma_base_data_dir }}"
|
|
- "{{ pleroma_uploads_dir }}"
|
|
- "{{ pleroma_static_dir }}"
|
|
- "{{ pleroma_static_dir }}/images"
|
|
|
|
- name: Ensuring that the release build of pleroma is downloaded.
|
|
get_url:
|
|
url: "{{ pleroma_download_url }}"
|
|
dest: "{{ pleroma_download_dest }}"
|
|
|
|
- name: Unzipping the release build of pleroma.
|
|
unarchive:
|
|
remote_src: yes
|
|
src: "{{ pleroma_download_dest }}"
|
|
dest: /tmp
|
|
owner: "{{ pleroma_user.name }}"
|
|
group: "{{ pleroma_user.group }}"
|
|
|
|
- name: Ensuring that Pleroma is installed.
|
|
shell: |
|
|
find /tmp/release/ -mindepth 1 -maxdepth 1 | xargs -I dir mv dir {{ pleroma_user.home }}
|
|
args:
|
|
creates: "{{ pleroma_user.home }}/bin/pleroma"
|
|
|
|
- name: Ensuring the configuration file is set.
|
|
template:
|
|
src: etc_pleroma_config.exs.j2
|
|
dest: "{{ pleroma_config_dir }}/config.exs"
|
|
owner: "{{ pleroma_user.name }}"
|
|
group: "{{ pleroma_user.group }}"
|
|
mode: '0400'
|
|
|
|
- name: Running database migrations.
|
|
command:
|
|
argv:
|
|
- pleroma_ctl
|
|
- migrate
|
|
environment:
|
|
PATH: "{{ ansible_env.PATH }}:/opt/pleroma/bin"
|
|
|
|
- name: Ensuring that folder permissions are set properly in /opt/pleroma.
|
|
shell: |
|
|
find {{ pleroma_user.home }} -mindepth 1 -maxdepth 1 -type d | xargs -I dir chmod 0700 dir
|
|
find {{ pleroma_user.home }} -mindepth 1 -maxdepth 1 -type d | xargs -I dir chown -R {{ pleroma_user.name }}:{{ pleroma_user.group }} dir
|
|
|
|
- name: Uploading the background image to the static directory
|
|
copy:
|
|
src: "{{ pleroma.config.frontend.background }}"
|
|
dest: "{{ pleroma_static_dir }}/images/pleroma-background.png"
|
|
owner: "{{ pleroma_user.name }}"
|
|
group: "{{ pleroma_user.group }}"
|
|
mode: '0400'
|
|
when: pleroma.config.frontend.background|length
|
|
|
|
- name: Setting up the Pleroma service.
|
|
copy:
|
|
src: "{{ pleroma_user.home }}/installation/init.d/pleroma"
|
|
dest: /etc/init.d/pleroma
|
|
remote_src: yes
|
|
owner: root
|
|
group: root
|
|
mode: '0700'
|
|
|
|
- name: Ensuring that the Pleroma service is enabled and started.
|
|
service:
|
|
name: pleroma
|
|
enabled: yes
|
|
state: restarted
|
|
|
|
- name: Cleaning up
|
|
file:
|
|
path: "{{ item }}"
|
|
state: absent
|
|
loop:
|
|
- "{{ pleroma_download_dest }}"
|
|
- /tmp/release
|