--- - name: Install prereq ansible.builtin.package: name: - ffmpeg - g++ - make - python-is-python3 - python3-pip - unzip state: present update_cache: true - name: Create peertube user ansible.builtin.user: comment: Peertube home: "{{ peertube_home }}" name: peertube password: '!' shell: /bin/bash state: present - name: Create peertube .ssh dir ansible.builtin.file: state: directory path: "{{ peertube_home }}/.ssh" mode: "0o755" owner: peertube group: peertube - name: Set ssh for peertube user ansible.builtin.copy: remote_src: true src: /root/.ssh/authorized_keys dest: "{{ peertube_home }}/.ssh/authorized_keys" mode: "0o644" owner: peertube group: peertube - name: Create peertube dirs ansible.builtin.file: path: "{{ peertube_home }}/{{ item.path }}" state: directory owner: peertube group: peertube mode: "{{ item.mode | default('0o755') }}" loop: - {path: "config", mode: "0o750"} - {path: "storage"} - {path: "versions"} - name: Unzip peertube remote_user: peertube ansible.builtin.unarchive: src: "{{ peertube_url }}" remote_src: true dest: "{{ peertube_home }}/versions" owner: peertube group: peertube - name: Symlink latest peertube version remote_user: peertube ansible.builtin.file: state: link src: "{{ peertube_home }}/versions/peertube-v{{ peertube_version }}" dest: "{{ peertube_home }}/peertube-latest" owner: peertube group: peertube - name: Install peertube remote_user: peertube ansible.builtin.command: cmd: | bash -lic "yarn install --production --pure-lockfile" chdir: "{{ peertube_home }}/peertube-latest" changed_when: true - name: Install services ansible.builtin.template: src: peertube.service.j2 dest: /etc/systemd/system/peertube.service mode: "0o644" - name: Install default configuration ansible.builtin.file: state: link src: "{{ peertube_home }}/peertube-latest/config/default.yaml" dest: "{{ peertube_home }}/config/default.yaml" owner: peertube group: peertube - name: Run services ansible.builtin.systemd: name: peertube.service daemon_reload: true state: restarted # restart everytime, this is simpler enabled: true - name: Clean yarn cache remote_user: peertube ansible.builtin.command: cmd: | bash -lic "yarn cache clean" changed_when: true