From a871910daabd136f8231727c64b05b6bac80ea57 Mon Sep 17 00:00:00 2001 From: Mathieu Gauthier-Pilote Date: Thu, 18 May 2023 15:51:49 -0400 Subject: [PATCH] debconf, templates, etc --- webapps/jitsimeet/defaults/main.yml | 7 +- webapps/jitsimeet/tasks/main.yml | 53 + .../templates/jicofo/logging.properties.j2 | 38 + webapps/jitsimeet/templates/meet/config.js.j2 | 1597 +++++++++++++++++ .../templates/prosody/prosody.cfg.lua.j2 | 254 +++ .../templates/prosody/virtualhost.cfg.lua.j2 | 160 ++ .../templates/videobridge/jvb.conf.j2 | 12 + .../videobridge/logging.properties.j2 | 34 + .../sip-communicator.properties.j2 | 10 + 9 files changed, 2164 insertions(+), 1 deletion(-) create mode 100644 webapps/jitsimeet/templates/jicofo/logging.properties.j2 create mode 100644 webapps/jitsimeet/templates/meet/config.js.j2 create mode 100644 webapps/jitsimeet/templates/prosody/prosody.cfg.lua.j2 create mode 100644 webapps/jitsimeet/templates/prosody/virtualhost.cfg.lua.j2 create mode 100644 webapps/jitsimeet/templates/videobridge/jvb.conf.j2 create mode 100644 webapps/jitsimeet/templates/videobridge/logging.properties.j2 create mode 100644 webapps/jitsimeet/templates/videobridge/sip-communicator.properties.j2 diff --git a/webapps/jitsimeet/defaults/main.yml b/webapps/jitsimeet/defaults/main.yml index d6813d04..b519ebcb 100644 --- a/webapps/jitsimeet/defaults/main.yml +++ b/webapps/jitsimeet/defaults/main.yml @@ -1,10 +1,15 @@ --- # defaults file for main vars -system_dep: "['gnupg2', 'curl', 'apt-transport-https', 'default-jdk', 'nginx-full', 'lua5.2']" +system_dep: "['gnupg2', 'curl', 'apt-transport-https', 'default-jdk', 'lua5.2']" domains: ['bullseye.domaine-fictif.org'] +jitsi_meet_cert_choice: "Generate a new self-signed certificate (You will later get a chance to obtain a Let's encrypt certificate)" +jitsi_meet_ssl_cert_path: "/etc/ssl/certs/ssl-cert-snakeoil.pem" +jitsi_meet_ssl_key_path: "/etc/ssl/private/ssl-cert-snakeoil.key" +jitsi_meet_turn_secret: "QZItKTo4iJ2vqrMWoZgN" + version: "stable-8319" # 7 March 2023 version_old: "stable-8252" # used by jitsimeet/tasks/upgrade.yml diff --git a/webapps/jitsimeet/tasks/main.yml b/webapps/jitsimeet/tasks/main.yml index 69815e09..1f4e383d 100644 --- a/webapps/jitsimeet/tasks/main.yml +++ b/webapps/jitsimeet/tasks/main.yml @@ -41,7 +41,60 @@ state: present update_cache: true +- name: Set debconf options for jitsi-meet + ansible.builtin.debconf: + name: "{{ item.name }}" + question: "{{ item.question }}" + value: "{{ item.value }}" + vtype: "{{ item.vtype }}" + loop: + - name: jitsi-videobridge2 + question: jitsi-videobridge/jvb-hostname + value: "{{ domains | first }}" + vtype: string + - name: jitsi-meet-web-config + question: jitsi-meet/cert-choice + value: "{{ jitsi_meet_cert_choice }}" + vtype: string + - name: jitsi-meet-web-config + question: jitsi-meet/cert-path-crt + value: "{{ jitsi_meet_ssl_cert_path }}" + vtype: string + - name: jitsi-meet-web-config + question: jitsi-meet/cert-path-key + value: "{{ jitsi_meet_ssl_key_path }}" + vtype: string + - name: jitsi-meet-prosody + question: jitsi-meet-prosody/turn-secret + value: "{{ jitsi_meet_turn_secret }}" + vtype: string + - name: Install Jitsi Meet ansible.builtin.apt: name: jitsi-meet state: present + install_recommends: no + +- name: Template config files + template: + src: "{{ item.src }}" + dest: "{{ item.dest }}" + owner: "{{ item.owner }}" + group: "{{ item.group }}" + mode: "{{ item.mode }}" + loop: + - { src: 'videobridge/jvb.conf.j2', dest: "/etc/jitsi/videobridge/jvb.conf", owner: "jvb", group: "jitsi", mode: "0640" } + - { src: 'videobridge/logging.properties.j2', dest: "/etc/jitsi/videobridge/jlogging.properties", owner: "jvb", group: "jitsi", mode: "0640" } + - { src: 'videobridge/sip-communicator.properties.j2', dest: "/etc/jitsi/videobridge/sip-communicator.properties", owner: "jvb", group: "jitsi", mode: "0640" } + - { src: 'jicofo/logging.properties.j2', dest: "/etc/jitsi/jicofo/logging.properties", owner: "jicofo", group: "jitsi", mode: "0640" } + - { src: 'meet/config.js.j2', dest: "/etc/jitsi/meet/{{ domains | first }}-config.js", owner: "root", group: "root", mode: "0644" } + - { src: 'prosody/prosody.cfg.lua.j2', dest: "/etc/prosody/prosody.cfg.lua", owner: "root", group: "prosody", mode: "0640" } + - { src: 'prosody/virtualhost.cfg.lua.j2', dest: "/etc/prosody/conf.avail/{{ domains | first }}.cfg.lua", owner: "root", group: "root", mode: "0644" } + +#- name: Install Jitsi Meet +# ansible.builtin.apt: +# name: +# - nginx-full +# - python3-certbot-nginx +# state: present +# install_recommends: no diff --git a/webapps/jitsimeet/templates/jicofo/logging.properties.j2 b/webapps/jitsimeet/templates/jicofo/logging.properties.j2 new file mode 100644 index 00000000..7181e262 --- /dev/null +++ b/webapps/jitsimeet/templates/jicofo/logging.properties.j2 @@ -0,0 +1,38 @@ + +handlers= java.util.logging.ConsoleHandler + +# Handlers with XMPP debug enabled: +#handlers= java.util.logging.ConsoleHandler, org.jitsi.impl.protocol.xmpp.log.XmppPacketsFileHandler + +# Handlers with syslog enabled: +#handlers= java.util.logging.ConsoleHandler, com.agafua.syslog.SyslogHandler +#handlers= java.util.logging.ConsoleHandler, io.sentry.jul.SentryHandler + +java.util.logging.ConsoleHandler.level = ALL +java.util.logging.ConsoleHandler.formatter = org.jitsi.utils.logging2.JitsiLogFormatter +java.util.logging.ConsoleHandler.filter = org.jitsi.impl.protocol.xmpp.log.ExcludeXmppPackets + +org.jitsi.utils.logging2.JitsiLogFormatter.programname=Jicofo +.level=INFO + +# To enable XMPP packets logging add XmppPacketsFileHandler to the handlers property +org.jitsi.impl.protocol.xmpp.log.PacketDebugger.level=ALL +org.jitsi.impl.protocol.xmpp.log.XmppPacketsFileHandler.pattern=/var/log/jitsi/jicofo-xmpp.log +org.jitsi.impl.protocol.xmpp.log.XmppPacketsFileHandler.append=true +org.jitsi.impl.protocol.xmpp.log.XmppPacketsFileHandler.limit=200000000 +org.jitsi.impl.protocol.xmpp.log.XmppPacketsFileHandler.count=3 + +# Syslog (uncomment handler to use) +com.agafua.syslog.SyslogHandler.transport = udp +com.agafua.syslog.SyslogHandler.facility = local0 +com.agafua.syslog.SyslogHandler.port = 514 +com.agafua.syslog.SyslogHandler.hostname = localhost +com.agafua.syslog.SyslogHandler.formatter = org.jitsi.utils.logging2.JitsiLogFormatter +com.agafua.syslog.SyslogHandler.escapeNewlines = false +com.agafua.syslog.SyslogHandler.filter = org.jitsi.impl.protocol.xmpp.log.ExcludeXmppPackets + +# Sentry (uncomment handler to use) +io.sentry.jul.SentryHandler.level=WARNING + +# uncomment to see how Jicofo talks to the JVB +#org.jitsi.impl.protocol.xmpp.colibri.level=ALL diff --git a/webapps/jitsimeet/templates/meet/config.js.j2 b/webapps/jitsimeet/templates/meet/config.js.j2 new file mode 100644 index 00000000..1f4473e3 --- /dev/null +++ b/webapps/jitsimeet/templates/meet/config.js.j2 @@ -0,0 +1,1597 @@ +/* eslint-disable comma-dangle, no-unused-vars, no-var, prefer-template, vars-on-top */ + +/* + * NOTE: If you add a new option please remember to document it here: + * https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-configuration + */ + +var subdir = ''; +var subdomain = ''; + +if (subdomain) { + subdomain = subdomain.substr(0, subdomain.length - 1).split('.') + .join('_') + .toLowerCase() + '.'; +} + +// In case of no ssi provided by the webserver, use empty strings +if (subdir.startsWith('