--- # 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