100 lines
2.3 KiB
YAML
100 lines
2.3 KiB
YAML
---
|
|
# tasks file for peertube upgrade
|
|
|
|
- name: Stop peertube systemd unit
|
|
service:
|
|
name: "{{ service }}"
|
|
state: stopped
|
|
|
|
- name: stat videos
|
|
stat:
|
|
path: "{{ service_home }}/storage/videos/"
|
|
register: videos
|
|
|
|
- name: Move videos to web-videos (needed when upgrading to version 6)
|
|
command: "mv {{ service_home }}/storage/videos/{{ service_home }}/storage/web-videos/"
|
|
when: videos.stat.exists
|
|
become_user: "{{ service }}"
|
|
|
|
- name: Dump database to a file with compression
|
|
postgresql_db:
|
|
name: "{{ db_name }}"
|
|
state: dump
|
|
target: "~/{{ db_name }}.sql.gz"
|
|
become_user: postgres
|
|
|
|
- name: Unarchive new peertube archive
|
|
unarchive:
|
|
src: "{{ download_url }}"
|
|
dest: ~/versions
|
|
remote_src: yes
|
|
become_user: "{{ service }}"
|
|
|
|
- name: Adjust permissions
|
|
file:
|
|
path: "{{ item }}"
|
|
mode: o+rx
|
|
loop:
|
|
- "~/versions/peertube-{{ version }}"
|
|
- "~/versions/peertube-{{ version }}/client"
|
|
become_user: "{{ service }}"
|
|
|
|
- name: Symbolic link to new version
|
|
file:
|
|
src: "~/versions/peertube-{{ version }}"
|
|
dest: "~/peertube-latest"
|
|
state: link
|
|
become_user: "{{ service }}"
|
|
|
|
- name: Install PeerTube nodejs deps (via yarn)
|
|
shell: "yarn install --production --pure-lockfile"
|
|
args:
|
|
chdir: "~/peertube-latest"
|
|
become_user: "{{ service }}"
|
|
|
|
- name: Copy default.yaml to prod dir
|
|
copy:
|
|
src: "~/peertube-latest/config/default.yaml"
|
|
dest: "~/config/default.yaml"
|
|
remote_src: true
|
|
become_user: "{{ service }}"
|
|
|
|
- name: Template peertube conf file
|
|
template:
|
|
src: "production.yaml.j2"
|
|
dest: "~/config/production.yaml"
|
|
become_user: "{{ service }}"
|
|
|
|
- name: Restart peertube systemd unit
|
|
systemd:
|
|
name: "{{ service }}"
|
|
daemon_reload: true
|
|
state: restarted
|
|
|
|
- name: Check if SSL certificate is present and register result
|
|
stat:
|
|
path: "/etc/letsencrypt/live/{{ domains |first }}/fullchain.pem"
|
|
register: ssl
|
|
|
|
- name: Retemplate conf file for nginx vhost
|
|
template:
|
|
src: "vhost.conf.j2"
|
|
dest: "/etc/nginx/sites-available/{{ service }}.conf"
|
|
|
|
- name: Reload nginx conf
|
|
service:
|
|
name: nginx
|
|
state: reloaded
|
|
|
|
- name: Define variable to skip next task by default
|
|
set_fact:
|
|
keep_db_dump: true
|
|
|
|
- name: Remove database dump
|
|
file:
|
|
path: "~/{{ db_name }}.sql.gz"
|
|
state: absent
|
|
become_user: postgres
|
|
when: keep_db_dump is undefined
|
|
tags: clean
|