mirror of
https://git.lapiole.org/dani/ansible-roles.git
synced 2025-07-27 00:05:44 +02:00
Update to 2021-12-01 19:13
This commit is contained in:
8
roles/jitsi_jibri/tasks/cleanup.yml
Normal file
8
roles/jitsi_jibri/tasks/cleanup.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
|
||||
- name: Remove tmp and obsolete files
|
||||
file: path={{ item }} state=absent
|
||||
loop:
|
||||
- "{{ jitsi_root_dir }}/tmp/chromedriver_linux64.zip"
|
||||
- "{{ jitsi_root_dir }}/tmp/chromedriver"
|
||||
tags: jitsi
|
60
roles/jitsi_jibri/tasks/conf.yml
Normal file
60
roles/jitsi_jibri/tasks/conf.yml
Normal file
@@ -0,0 +1,60 @@
|
||||
---
|
||||
|
||||
- name: Deploy configuration
|
||||
template: src={{ item.src }} dest={{ item.dest }}
|
||||
loop:
|
||||
- src: xorg-video-dummy.conf.j2
|
||||
dest: /etc/X11/xorg.conf.d/jibri.conf
|
||||
- src: jibri.conf.j2
|
||||
dest: "{{ jitsi_root_dir }}/etc/jibri/jibri.conf"
|
||||
notify: restart jitsi-jibri
|
||||
tags: jitsi
|
||||
|
||||
- name: Configure pam
|
||||
copy:
|
||||
content: |
|
||||
#%PAM-1.0
|
||||
auth required pam_permit.so
|
||||
account required pam_permit.so
|
||||
dest: /etc/pam.d/xserver
|
||||
tags: jitsi
|
||||
|
||||
- name: Allow any user to run Xorg
|
||||
copy:
|
||||
content: allowed_users = anybody
|
||||
dest: /etc/X11/Xwrapper.config
|
||||
tags: jitsi
|
||||
|
||||
- name: Create Chrome policy dir
|
||||
file: path=/etc/opt/chrome/policies/managed/ state=directory
|
||||
tags: jitsi
|
||||
|
||||
- name: Configure Chrome policy
|
||||
copy:
|
||||
content: |
|
||||
{ "CommandLineFlagSecurityWarningsEnabled": false }
|
||||
dest: /etc/opt/chrome/policies/managed/managed_policies.json
|
||||
tags: jitsi
|
||||
|
||||
- name: Ensure snd-aloop is loaded
|
||||
modprobe: name=snd-aloop state=present
|
||||
tags: jitsi
|
||||
|
||||
- name: Configure snd-aloop to be loaded on boot
|
||||
copy:
|
||||
content: snd-aloop
|
||||
dest: /etc/modules-load.d/jibri.conf
|
||||
tags: jitsi
|
||||
|
||||
- name: Configure asound
|
||||
template: src=asound.conf.j2 dest={{ jitsi_root_dir }}/jibri/.asoundrc owner={{ jitsi_jibri_user }}
|
||||
tags: jitsi
|
||||
|
||||
- name: Configure nginx to serve recordings
|
||||
template: src=nginx.conf.j2 dest=/etc/nginx/ansible_location.d/10-jitsi-jibri.conf
|
||||
notify: reload nginx
|
||||
tags: jitsi
|
||||
|
||||
- name: Configure the finalize script
|
||||
template: src=finalize.yml.j2 dest={{ jitsi_root_dir }}/etc/jibri/finalize.yml
|
||||
tags: jitsi
|
18
roles/jitsi_jibri/tasks/directories.yml
Normal file
18
roles/jitsi_jibri/tasks/directories.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
|
||||
- name: Create directories
|
||||
file: path={{ item.dir }} state=directory owner={{ item.owner | default(omit) }} group={{ item.group | default(omit) }} mode={{ item.mode | default(omit) }}
|
||||
loop:
|
||||
- dir: "{{ jitsi_root_dir }}/src/jibri"
|
||||
owner: "{{ jitsi_jibri_user }}"
|
||||
- dir: "{{ jitsi_root_dir }}/jibri"
|
||||
owner: "{{ jitsi_jibri_user }}"
|
||||
mode: 700
|
||||
- dir: "{{ jitsi_root_dir }}/etc/jibri"
|
||||
group: "{{ jitsi_jibri_user }}"
|
||||
mode: 750
|
||||
- dir: "{{ jitsi_root_dir }}/data/recordings"
|
||||
owner: "{{ jitsi_jibri_user }}"
|
||||
group: nginx
|
||||
mode: 750
|
||||
tags: jitsi
|
43
roles/jitsi_jibri/tasks/facts.yml
Normal file
43
roles/jitsi_jibri/tasks/facts.yml
Normal file
@@ -0,0 +1,43 @@
|
||||
---
|
||||
|
||||
- name: Generate a random pass for jibri
|
||||
block:
|
||||
- import_tasks: ../includes/get_rand_pass.yml
|
||||
vars:
|
||||
- pass_file: "{{ jitsi_root_dir }}/meta/ansible_jibri_xmpp_pass"
|
||||
- set_fact: jitsi_jibri_xmpp_pass={{ rand_pass }}
|
||||
when: jitsi_jibri_xmpp_pass is not defined
|
||||
tags: jitsi
|
||||
|
||||
- name: Generate a random pass for recorder
|
||||
block:
|
||||
- import_tasks: ../includes/get_rand_pass.yml
|
||||
vars:
|
||||
- pass_file: "{{ jitsi_root_dir }}/meta/ansible_jibri_recorder_xmpp_pass"
|
||||
- set_fact: jitsi_jibri_recorder_xmpp_pass={{ rand_pass }}
|
||||
when: jitsi_jibri_recorder_xmpp_pass is not defined
|
||||
tags: jitsi
|
||||
|
||||
- name: Check if jibri is built
|
||||
stat: path={{ jitsi_root_dir }}/jibri/jibri.jar
|
||||
register: jitsi_jibri_jar
|
||||
tags: jitsi
|
||||
|
||||
- name: Check latest version of ChromeDriver
|
||||
uri:
|
||||
url: https://chromedriver.storage.googleapis.com/LATEST_RELEASE
|
||||
return_content: True
|
||||
register: jitsi_jibri_chromedriver_latest_version
|
||||
tags: jitsi
|
||||
|
||||
- name: Check if ChromeDriver is installed
|
||||
stat: path=/usr/local/bin/chromedriver
|
||||
register: jitsi_jibri_chromedriver_bin
|
||||
tags: jitsi
|
||||
|
||||
- name: Detect ChromeDriver version
|
||||
shell: chromedriver --version | perl -pe 's/ChromeDriver (\d+(\.\d+)+).*/$1/'
|
||||
register: jitsi_jibri_chromedriver_current_version
|
||||
when: jitsi_jibri_chromedriver_bin.stat.exists
|
||||
changed_when: False
|
||||
tags: jitsi
|
94
roles/jitsi_jibri/tasks/install.yml
Normal file
94
roles/jitsi_jibri/tasks/install.yml
Normal file
@@ -0,0 +1,94 @@
|
||||
---
|
||||
|
||||
- name: Install dependencies
|
||||
yum:
|
||||
name:
|
||||
- java-1.8.0-openjdk
|
||||
- git
|
||||
- google-chrome-stable
|
||||
- ffmpeg
|
||||
- curl
|
||||
- alsa-utils
|
||||
- xdotool
|
||||
#- xorg-x11-drv-void
|
||||
- xorg-x11-drv-dummy
|
||||
- perl-YAML-Tiny
|
||||
- perl-Email-MIME
|
||||
- perl-Email-Sender
|
||||
tags: jitsi
|
||||
|
||||
# If the repo changed since the last run, we rebuild and restart the bridge
|
||||
- name: Clone jibri repo
|
||||
git:
|
||||
repo: "{{ jitsi_jibri_git_url }}"
|
||||
dest: "{{ jitsi_root_dir }}/src/jibri"
|
||||
force: True
|
||||
become_user: "{{ jitsi_jibri_user }}"
|
||||
register: jitsi_jibri_git
|
||||
tags: jitsi
|
||||
|
||||
- name: Install or update ChromeDriver
|
||||
block:
|
||||
- name: Download ChromeDriver
|
||||
get_url:
|
||||
url: http://chromedriver.storage.googleapis.com/{{ jitsi_jibri_chromedriver_latest_version.content }}/chromedriver_linux64.zip
|
||||
dest: "{{ jitsi_root_dir }}/tmp"
|
||||
|
||||
- name: Extract ChromeDriver
|
||||
unarchive:
|
||||
src: "{{ jitsi_root_dir }}/tmp/chromedriver_linux64.zip"
|
||||
dest: "{{ jitsi_root_dir }}/tmp"
|
||||
remote_src: True
|
||||
|
||||
- name: Move ChromeDriver bin
|
||||
copy:
|
||||
src: "{{ jitsi_root_dir }}/tmp/chromedriver"
|
||||
dest: /usr/local/bin/chromedriver
|
||||
mode: 755
|
||||
remote_src: True
|
||||
|
||||
when: not jitsi_jibri_chromedriver_bin.stat.exists or jitsi_jibri_chromedriver_current_version.stdout != jitsi_jibri_chromedriver_latest_version.content
|
||||
tags: jitsi
|
||||
|
||||
- name: Install or update jibri
|
||||
block:
|
||||
- name: Build jibri
|
||||
command: /opt/maven/apache-maven/bin/mvn package -DskipTests -Dassembly.skipAssembly=false
|
||||
args:
|
||||
chdir: "{{ jitsi_root_dir }}/src/jibri"
|
||||
become_user: "{{ jitsi_jibri_user }}"
|
||||
|
||||
- name: Move jibri to its final directory
|
||||
copy:
|
||||
src: "{{ jitsi_root_dir }}/src/jibri/target/jibri-8.0-SNAPSHOT-jar-with-dependencies.jar"
|
||||
dest: "{{ jitsi_root_dir }}/jibri/jibri.jar"
|
||||
remote_src: True
|
||||
notify: restart jitsi-jibri
|
||||
|
||||
when: (jitsi_jibri_git.changed and jitsi_jibri_manage_upgrade) or not jitsi_jibri_jar.stat.exists
|
||||
tags: jitsi
|
||||
|
||||
- name: Deploy systemd units
|
||||
template: src=jitsi-{{ item }}.j2 dest=/etc/systemd/system/jitsi-{{ item }}
|
||||
loop:
|
||||
- jibri.service
|
||||
- jibri-xorg.service
|
||||
- jibri-cleaner.service
|
||||
- jibri-cleaner.timer
|
||||
register: jitsi_jibri_unit
|
||||
notify: restart jitsi-jibri
|
||||
tags: jitsi
|
||||
|
||||
- name: Reload systemd
|
||||
systemd: daemon_reload=True
|
||||
when: jitsi_jibri_unit.results | selectattr('changed','equalto',True) | list | length > 0
|
||||
tags: jitsi
|
||||
|
||||
- name: Install finalize script
|
||||
template: src=finalize.pl.j2 dest={{ jitsi_root_dir }}/jibri/finalize.pl mode=755
|
||||
tags: jitsi
|
||||
|
||||
- name: Install record cleaning script
|
||||
template: src=clean_records.sh.j2 dest={{ jitsi_root_dir }}/jibri/clean_records.sh mode=755
|
||||
tags: jitsi
|
||||
|
9
roles/jitsi_jibri/tasks/main.yml
Normal file
9
roles/jitsi_jibri/tasks/main.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
|
||||
- include: user.yml
|
||||
- include: directories.yml
|
||||
- include: facts.yml
|
||||
- include: install.yml
|
||||
- include: conf.yml
|
||||
- include: services.yml
|
||||
- include: cleanup.yml
|
9
roles/jitsi_jibri/tasks/services.yml
Normal file
9
roles/jitsi_jibri/tasks/services.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
|
||||
- name: Start and enable services
|
||||
service: name=jitsi-jibri state=started enabled=True
|
||||
tags: jitsi
|
||||
|
||||
- name: Start cleaer timer
|
||||
systemd: name=jitsi-jibri-cleaner.timer state=started enabled=True
|
||||
tags: jitsi
|
11
roles/jitsi_jibri/tasks/user.yml
Normal file
11
roles/jitsi_jibri/tasks/user.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
|
||||
- name: Create jibri user account
|
||||
user:
|
||||
name: "{{ jitsi_jibri_user }}"
|
||||
home: "{{ jitsi_root_dir }}/jibri"
|
||||
groups:
|
||||
- tty
|
||||
- video
|
||||
- audio
|
||||
tags: jitsi
|
Reference in New Issue
Block a user