feat: add peertube role
This commit is contained in:
75
roles/peertube/tasks/main.yml
Normal file
75
roles/peertube/tasks/main.yml
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Install prereq
|
||||||
|
ansible.builtin.package:
|
||||||
|
name:
|
||||||
|
- ffmpeg
|
||||||
|
- g++
|
||||||
|
- make
|
||||||
|
- python-is-python3
|
||||||
|
- unzip
|
||||||
|
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
|
5
roles/peertube/vars/main.yml
Normal file
5
roles/peertube/vars/main.yml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
peertube_version: "5.1.0"
|
||||||
|
peertube_home: "/srv/peertube"
|
||||||
|
peertube_url: "https://github.com/Chocobozzz/PeerTube/releases/download/v{{ peertube_version }}/peertube-v{{ peertube_version }}.zip"
|
Reference in New Issue
Block a user