Files
ansible/roles/peertube/tasks/main.yml

106 lines
2.4 KiB
YAML

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