Update Install_recording.yml

This commit is contained in:
2025-05-23 16:12:43 +02:00
committed by GitHub
parent 54d7b49a42
commit 6f7ed48023

View File

@@ -1,97 +1,129 @@
- name: Installeer Firefox, Geckodriver en Talk Recording omgeving ---
- name: Playbook om Firefox, Geckodriver en andere tools te installeren
hosts: localhost hosts: localhost
become: true become: yes
connection: local
vars: vars:
nextcloud_domain: "{{ nextcloud_domain }}" nextcloud_domain: "{{ nextcloud_domain }}"
nextcloud_secret: "{{ nextcloud_secret }}" nextcloud_secret: "{{ nextcloud_secret }}"
signaling_domain: "{{ signaling_domain }}" signaling_domain: "{{ signaling_domain }}"
signaling_secret: "{{ signaling_secret }}" signaling_secret: "{{ signaling_secret }}"
recording_dir: "/opt/recording"
tasks: tasks:
- name: Installeer vereiste pakketten
apt:
name:
- libgtk-3-0
- libdbus-glib-1-2
- libpulse0
- pulseaudio
- xvfb
- ffmpeg
- python3.10-venv
state: present
update_cache: yes
- name: Download Firefox - name: Download en extract Firefox naar /opt
get_url: ansible.builtin.command:
url: "https://download.mozilla.org/?product=firefox-latest&os=linux64&lang=en-US" cmd: 'wget -O firefox.tar.xz https://download.mozilla.org/?product=firefox-latest&os=linux64&lang=en-US'
dest: /opt/firefox.tar.xz chdir: /opt
args:
creates: /opt/firefox
become: yes
- name: Pak Firefox uit - name: Extract Firefox
unarchive: unarchive:
src: /opt/firefox.tar.xz src: /opt/firefox.tar.xz
dest: /opt/ dest: /opt
remote_src: yes remote_src: yes
- name: Maak symlink voor Firefox - name: Maak een symlink voor Firefox
file: ansible.builtin.file:
src: /opt/firefox/firefox src: /opt/firefox/firefox
dest: /usr/local/bin/firefox dest: /usr/local/bin/firefox
state: link state: link
force: true become: yes
- name: Download Geckodriver - name: Installeer benodigde GTK bibliotheken
get_url: apt:
url: https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-linux64.tar.gz update_cache: yes
dest: /usr/local/bin/geckodriver.tar.gz name:
- libgtk-3-0
- libdbus-glib-1-2
become: yes
- name: Pak Geckodriver uit - name: Download en extract Geckodriver naar /usr/local/bin
ansible.builtin.command:
cmd: 'wget https://github.com/mozilla/geckodriver/releases/download/v0.36.0/geckodriver-v0.36.0-linux64.tar.gz'
chdir: /usr/local/bin
args:
creates: /usr/local/bin/geckodriver
become: yes
- name: Extract Geckodriver
unarchive: unarchive:
src: /usr/local/bin/geckodriver.tar.gz src: /usr/local/bin/geckodriver-v0.36.0-linux64.tar.gz
dest: /usr/local/bin/ dest: /usr/local/bin
remote_src: yes remote_src: yes
- name: Verwijder Geckodriver archive - name: Maak Geckodriver executable
file: file:
path: /usr/local/bin/geckodriver.tar.gz path: /usr/local/bin/geckodriver
state: absent
- name: Maak recording directory aan
file:
path: "{{ recording_dir }}"
state: directory
mode: '0755' mode: '0755'
become: yes
- name: Maak Python virtuele omgeving aan in recording map - name: Verwijder Geckodriver tar.gz
shell: python3 -m venv venv ansible.builtin.file:
args: path: /usr/local/bin/geckodriver-v0.36.0-linux64.tar.gz
chdir: "{{ recording_dir }}" state: absent
creates: "{{ recording_dir }}/venv/bin/activate" become: yes
- name: Activeer venv en installeer nextcloud-talk-recording - name: Installeer python3.10-venv
shell: | apt:
source venv/bin/activate update_cache: yes
pip install file://$(pwd)/nextcloud-talk-recording name: python3.10-venv
args: become: yes
chdir: "{{ recording_dir }}"
- name: Maak server.conf bestand aan - name: Installeer libpulse0
copy: apt:
dest: "{{ recording_dir }}/server.conf" update_cache: yes
name: libpulse0
become: yes
- name: Installeer pulseaudio
apt:
update_cache: yes
name: pulseaudio
become: yes
- name: Installeer xvfb
apt:
update_cache: yes
name: xvfb
become: yes
- name: Installeer ffmpeg
apt:
update_cache: yes
name: ffmpeg
become: yes
- name: Maak de map recording aan
ansible.builtin.file:
path: /opt/recording
state: directory
become: yes
- name: Installeer een virtuele omgeving in map recording
ansible.builtin.command:
cmd: python3 -m venv venv
chdir: /opt/recording
become: yes
- name: Activeer de virtuele omgeving en installeer nextcloud-talk-recording
ansible.builtin.shell: |
source /opt/recording/venv/bin/activate
pip install file:///opt/recording/nextcloud-talk-recording
- name: Maak de server.conf aan
ansible.builtin.copy:
dest: /opt/recording/server.conf
content: | content: |
[logs] [logs]
level = 20 level = 20
[http] [http]
listen = 0.0.0.0:8000 listen = 0.0.0.0:8000
[app] [app]
trustedproxies = trustedproxies =
[backend] [backend]
backends = backend-1 backends = backend-1
[backend-1] [backend-1]
url = {{ nextcloud_domain }} url = {{ nextcloud_domain }}
secret = {{ nextcloud_secret }} secret = {{ nextcloud_secret }}
@@ -101,25 +133,22 @@
videowidth = 1920 videowidth = 1920
videoheight = 1080 videoheight = 1080
directory = /tmp directory = /tmp
[signaling] [signaling]
url = {{ signaling_domain }} url = {{ signaling_domain }}
internalsecret = {{ signaling_secret }} internalsecret = {{ signaling_secret }}
[ffmpeg] [ffmpeg]
common = ffmpeg -loglevel level+warning -n -thread_queue_size 1024 common = ffmpeg -loglevel level+warning -n -thread_queue_size 1024
outputaudio = -c:a libopus outputaudio = -c:a libopus
outputvideo = -c:v libvpx -deadline:v realtime -crf 10 -b:v 1M outputvideo = -c:v libvpx -deadline:v realtime -crf 10 -b:v 1M
extensionaudio = .ogg extensionaudio = .ogg
extensionvideo = .webm extensionvideo = .webm
[recording] [recording]
browser = firefox browser = firefox
[stats] [stats]
allowed_ips = allowed_ips =
- name: Start recording server in background met nohup - name: Laat de service altijd draaien
shell: nohup {{ recording_dir }}/venv/bin/python3 -m nextcloud.talk.recording > output.log 2>&1 & ansible.builtin.shell: |
args: source /opt/recording/venv/bin/activate
chdir: "{{ recording_dir }}" nohup python3 -m nextcloud.talk.recording > /opt/recording/output.log 2>&1 &
become: yes