Merge "Add support for multiple jvbs behind meetpad"

This commit is contained in:
Zuul 2020-05-21 23:23:14 +00:00 committed by Gerrit Code Review
commit d1703f7379
13 changed files with 260 additions and 5 deletions

View File

@ -63,6 +63,8 @@ groups:
- graphite*.open*.org
health:
- health[0-9]*.openstack.org
jvb:
- jvb[0-9]*.opendev.org
kdc:
- kdc[0-9]*.open*.org
kubernetes:

View File

@ -0,0 +1,3 @@
meetpad_jvb_xmpp_server: "{{ hostvars['meetpad01.opendev.org'].ansible_host }}"
iptables_extra_public_udp_ports:
- 10000

View File

@ -4,3 +4,5 @@ iptables_extra_public_tcp_ports:
- 4443
iptables_extra_public_udp_ports:
- 10000
iptables_extra_allowed_groups:
- {'protocol': 'tcp', 'port': '5222', 'group': 'jvb'}

View File

@ -0,0 +1,2 @@
docker_compose_file: meet-docker-compose.yaml
docker_compose_env_file: meet-env.j2

View File

@ -0,0 +1,26 @@
# Based on https://github.com/jitsi/docker-jitsi-meet/blob/df404476160526d8512fb23b606965b98f7f25f3/docker-compose.yml
# Licensed under the ASL v2.
version: '2'
services:
# Video bridge
jvb:
image: docker.io/jitsi/jvb
network_mode: host
volumes:
- ${CONFIG}/jvb:/config
environment:
- DOCKER_HOST_ADDRESS
- XMPP_AUTH_DOMAIN
- XMPP_INTERNAL_MUC_DOMAIN
- XMPP_SERVER
- JVB_AUTH_USER
- JVB_AUTH_PASSWORD
- JVB_BREWERY_MUC
- JVB_PORT
- JVB_TCP_HARVESTER_DISABLED
- JVB_TCP_PORT
- JVB_STUN_SERVERS
- JVB_ENABLE_APIS
- TZ

View File

@ -1,10 +1,20 @@
- name: Synchronize docker-compose directory
synchronize:
src: jitsi-meet-docker/
dest: /etc/jitsi-meet-docker/
- name: Create docker-compose dir
file:
name: /etc/jitsi-meet-docker
state: directory
mode: 0755
owner: root
group: root
- name: Copy docker-compose config
copy:
src: "jitsi-meet-docker/{{ docker_compose_file }}"
dest: /etc/jitsi-meet-docker/docker-compose.yaml
mode: 0644
owner: root
group: root
- name: Write env file
template:
src: env.j2
src: "{{ docker_compose_env_file }}"
dest: /etc/jitsi-meet-docker/.env
- name: Ensure jitsi-meet volume directories exist
file:

View File

@ -0,0 +1,195 @@
# Based on https://github.com/jitsi/docker-jitsi-meet/blob/df404476160526d8512fb23b606965b98f7f25f3/env.example
# Licensed under the ASL v2.
# Customized for OpenDev:
# Directory where all configuration will be stored.
CONFIG=/var/jitsi-meet
# System time zone.
TZ=Etc/UTC
# Public URL for the web service.
PUBLIC_URL="https://meetpad.opendev.org"
# Set etherpad-lite URL (uncomment to enable).
ETHERPAD_URL_BASE=https://etherpad.opendev.org/p/
#
# Basic configuration options
#
# IP address of the Docker host. See the "Running on a LAN environment" section
# in the README.
#DOCKER_HOST_ADDRESS=192.168.1.1
#
# Let's Encrypt configuration
#
# Enable Let's Encrypt certificate generation.
#ENABLE_LETSENCRYPT=1
# Domain for which to generate the certificate.
#LETSENCRYPT_DOMAIN=meet.example.com
# E-Mail for receiving important account notifications (mandatory).
#LETSENCRYPT_EMAIL=alice@atlanta.net
#
# Basic Jigasi configuration options (needed for SIP gateway support)
#
# SIP URI for incoming / outgoing calls.
#JIGASI_SIP_URI=test@sip2sip.info
# Password for the specified SIP account as a clear text
#JIGASI_SIP_PASSWORD=passw0rd
# SIP server (use the SIP account domain if in doubt).
#JIGASI_SIP_SERVER=sip2sip.info
# SIP server port
#JIGASI_SIP_PORT=5060
# SIP server transport
#JIGASI_SIP_TRANSPORT=UDP
#
# Authentication configuration (see README for details)
#
# Enable authentication.
#ENABLE_AUTH=1
# Enable guest access.
#ENABLE_GUESTS=1
# Select authentication type: internal, jwt or ldap
#AUTH_TYPE=internal
# JWT auuthentication
#
# Application identifier.
#JWT_APP_ID=my_jitsi_app_id
# Application secret known only to your token.
#JWT_APP_SECRET=my_jitsi_app_secret
# (Optional) Set asap_accepted_issuers as a comma separated list.
#JWT_ACCEPTED_ISSUERS=my_web_client,my_app_client
# (Optional) Set asap_accepted_audiences as a comma separated list.
#JWT_ACCEPTED_AUDIENCES=my_server1,my_server2
# LDAP authentication (for more information see the Cyrus SASL saslauthd.conf man page)
#
# LDAP url for connection.
#LDAP_URL=ldaps://ldap.domain.com/
# LDAP base DN. Can be empty
#LDAP_BASE=DC=example,DC=domain,DC=com
# LDAP user DN. Do not specify this parameter for the anonymous bind.
#LDAP_BINDDN=CN=binduser,OU=users,DC=example,DC=domain,DC=com
# LDAP user password. Do not specify this parameter for the anonymous bind.
#LDAP_BINDPW=LdapUserPassw0rd
# LDAP filter. Tokens example:
# %1-9 - if the input key is user@mail.domain.com, then %1 is com, %2 is domain and %3 is mail.
# %s - %s is replaced by the complete service string.
# %r - %r is replaced by the complete realm string.
#LDAP_FILTER=(sAMAccountName=%u)
# LDAP authentication method
#LDAP_AUTH_METHOD=bind
# LDAP version
#LDAP_VERSION=3
# LDAP TLS using
#LDAP_USE_TLS=1
# List of SSL/TLS ciphers to allow.
#LDAP_TLS_CIPHERS=SECURE256:SECURE128:!AES-128-CBC:!ARCFOUR-128:!CAMELLIA-128-CBC:!3DES-CBC:!CAMELLIA-128-CBC
# Require and verify server certificate
#LDAP_TLS_CHECK_PEER=1
# Path to CA cert file. Used when server sertificate verify is enabled.
#LDAP_TLS_CACERT_FILE=/etc/ssl/certs/ca-certificates.crt
# Path to CA certs directory. Used when server sertificate verify is enabled.
#LDAP_TLS_CACERT_DIR=/etc/ssl/certs
# Wether to use starttls, implies LDAPv3 and requires ldap:// instead of ldaps://
# LDAP_START_TLS=1
#
# Advanced configuration options (you generally don't need to change these)
#
# Internal XMPP domain.
XMPP_DOMAIN=localhost
# Internal XMPP server
XMPP_SERVER={{ meetpad_jvb_xmpp_server }}
# Internal XMPP server URL
XMPP_BOSH_URL_BASE=http://localhost:5280
# Internal XMPP domain for authenticated services.
XMPP_AUTH_DOMAIN=auth.localhost
# XMPP domain for the MUC.
XMPP_MUC_DOMAIN=muc.localhost
# XMPP domain for the internal MUC used for jibri, jigasi and jvb pools.
XMPP_INTERNAL_MUC_DOMAIN=internal-muc.localhost
# XMPP domain for unauthenticated users.
XMPP_GUEST_DOMAIN=guest.localhost
# Custom Prosody modules for XMPP_DOMAIN (comma separated)
XMPP_MODULES=
# Custom Prosody modules for MUC component (comma separated)
XMPP_MUC_MODULES=
# Custom Prosody modules for internal MUC component (comma separated)
XMPP_INTERNAL_MUC_MODULES=
# MUC for the JVB pool.
JVB_BREWERY_MUC=jvbbrewery
# XMPP user for JVB client connections.
JVB_AUTH_USER=jvb
# XMPP password for JVB client connections.
JVB_AUTH_PASSWORD={{ meetpad_jvb_auth_password }}
# STUN servers used to discover the server's public IP.
JVB_STUN_SERVERS=stun.l.google.com:19302,stun1.l.google.com:19302,stun2.l.google.com:19302
# Media port for the Jitsi Videobridge
JVB_PORT=10000
# TCP Fallback for Jitsi Videobridge for when UDP isn't available
JVB_TCP_HARVESTER_DISABLED=true
JVB_TCP_PORT=4443
# A comma separated list of APIs to enable when the JVB is started. The default is none.
# See https://github.com/jitsi/jitsi-videobridge/blob/master/doc/rest.md for more information
#JVB_ENABLE_APIS=rest,colibri
# Disable HTTPS. This can be useful if TLS connections are going to be handled outside of this setup.
#DISABLE_HTTPS=1
# Redirects HTTP traffic to HTTPS. Only works with the standard HTTPS port (443).
#ENABLE_HTTP_REDIRECT=1

View File

@ -3,3 +3,11 @@
roles:
- install-docker
- jitsi-meet
- hosts: "jvb:!disabled"
name: "Configure extra jitsi video bridges"
roles:
- install-docker
- role: jitsi-meet
docker_compose_file: jvb-docker-compose.yaml
docker_compose_env_file: jvb-env.j2

View File

@ -56,6 +56,7 @@
- group_vars/gitea-lb.yaml
- group_vars/letsencrypt.yaml
- group_vars/meetpad.yaml
- group_vars/jvb.yaml
- group_vars/nodepool-launcher.yaml
- group_vars/registry.yaml
- group_vars/review.yaml

View File

@ -0,0 +1 @@
meetpad_jvb_auth_password: 8c64807830bcc7581821d3157899e3b0

View File

@ -543,6 +543,8 @@
label: ubuntu-bionic
- name: meetpad01.opendev.org
label: ubuntu-bionic
- name: jvb01.opendev.org
label: ubuntu-bionic
vars:
run_playbooks:
- playbooks/service-letsencrypt.yaml
@ -551,6 +553,9 @@
meetpad01.opendev.org:
host_copy_output:
'/var/jitsi-meet': logs
jvb01.opendev.org:
host_copy_output:
'/var/jitsi-meet': logs
files:
- playbooks/install-ansible.yaml
- playbooks/group_vars/meetpad.yaml