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

90 lines
2.0 KiB
YAML

---
- name: Install prereq
ansible.builtin.package:
name:
- ffmpeg
- g++
- make
- python-is-python3
- unzip
- npm
state: present
- 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: 0755
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: 0644
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('0755') }}"
loop:
- {path: "config", mode: "0750"}
- {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: 0644
- name: Run services
ansible.builtin.systemd:
name: peertube.service
daemon_reload: true
state: restarted # restart everytime, this is simpler
enabled: true