Update to 2021-12-01 19:13

This commit is contained in:
Daniel Berteaud
2021-12-01 19:13:34 +01:00
commit 4c4556c660
2153 changed files with 60999 additions and 0 deletions

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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