freedomofpress.jitsi-meet
jitsi-meet
Instala y configura el software de videoconferencia Jitsi Meet.
Requisitos
Ya debes tener el DNS apuntando al servidor y claves SSL. Si no tienes claves SSL para el dominio, considera usar el excelente rol de Ansible thefinn93.letsencrypt para obtener certificados SSL (¡gratis!) de LetsEncrypt.
También necesitarás abrir los puertos 443 TCP y 10000 UDP para que los componentes de Jitsi Meet funcionen. Por defecto, el rol usará ufw
para permitir estos puertos. Si usas otra solución de firewall basada en host como iptables, establece jitsi_meet_configure_firewall: false
. Si usas AWS o algo similar, deberás abrir esos puertos en el Grupo de Seguridad asociado.
Variables del rol
# Los archivos cert por defecto son /var/lib/prosody/localhost.{crt,key}
# NO los estamos estableciendo aquí, porque cadenas vacías para certs personalizados
# harán que se omitan las tareas de configuración personalizadas de Nginx.
jitsi_meet_ssl_cert_path: ''
jitsi_meet_ssl_key_path: ''
# Sin SSL, "localhost" es el valor por defecto correcto. Si se proporciona información de SSL,
# entonces necesitaremos un nombre de dominio real. Usamos el FQDN inferido de Ansible, pero puedes
# establecer el valor de la variable explícitamente si usas un nombre de host más corto.
# Si la configuración automática de Nginx está desactivada, también usa FQDN, ya que presumiblemente
# otro rol gestionará la configuración del vhost.
jitsi_meet_server_name: "{{ ansible_fqdn if (jitsi_meet_ssl_cert_path or not jitsi_meet_configure_nginx) else 'localhost' }}"
# Solo se admite la autenticación "anónima", que permite que cualquiera utilice el servidor de videoconferencia.
jitsi_meet_authentication: anonymous
# La instalación del paquete Debian de jitsi-meet generará secretos para los componentes.
# El rol leerá el archivo de configuración y preservará los secretos incluso mientras crea plantillas.
# Si deseas generar tus propios secretos y usarlos, sobreescribe estas variables, pero asegúrate
# de almacenar los secretos de forma segura, por ejemplo, usando ansible-vault o credstash.
jitsi_meet_videobridge_secret: ''
jitsi_meet_jicofo_secret: ''
jitsi_meet_jicofo_password: ''
# Información de autenticación por defecto, utilizada en múltiples plantillas de servicio.
jitsi_meet_jicofo_user: focus
jitsi_meet_jicofo_port: 5347
# El archivo de configuración por defecto en /etc/jitsi/videobridge/config dice que el puerto por defecto
# para JVB es "5275", pero la guía de instalación manual menciona "5347".
# https://github.com/jitsi/jitsi-meet/blob/master/doc/manual-install.md
jitsi_meet_videobridge_port: 5347
# Una reciente adición amigable con la privacidad, vea aquí para más detalles:
# https://github.com/jitsi/jitsi-meet/issues/422
# https://github.com/jitsi/jitsi-meet/pull/427
jitsi_meet_disable_third_party_requests: true
# Configuración de compartir pantalla para Chrome. Necesitarás construir y empaquetar una extensión
# de navegador específicamente para tu dominio; ver https://github.com/jitsi/jidesha
jitsi_meet_desktop_sharing_chrome_method: 'ext'
jitsi_meet_desktop_sharing_chrome_ext_id: 'diibjkoicjeejcmhdnailmkgecihlobk'
# Ruta a la extensión local en disco, para copiar al host de destino. El nombre de archivo remoto
# será el nombre base de la ruta proporcionada aquí.
jitsi_meet_desktop_sharing_chrome_extension_filename: ''
# Configuración de compartir pantalla para Firefox. Establecer max_version en '42' y disabled en 'false'
# si deseas usar compartir pantalla bajo Firefox.
jitsi_meet_desktop_sharing_firefox_ext_id: 'null'
jitsi_meet_desktop_sharing_firefox_disabled: true
jitsi_meet_desktop_sharing_firefox_max_version_ext_required: '-1'
# Estas configuraciones de debconf representan respuestas a preguntas interactivas durante la instalación
# del paquete deb de jitsi-meet. Si usas certs SSL personalizados, puedes tener que establecer más opciones.
jitsi_meet_debconf_settings:
- name: jitsi-meet
question: jitsi-meet/jvb-hostname
value: "{{ jitsi_meet_server_name }}"
vtype: string
- name: jitsi-meet
question: jitsi-meet/jvb-serve
value: "false"
vtype: boolean
- name: jitsi-meet-prosody
question: jitsi-meet-prosody/jvb-hostname
value: "{{ jitsi_meet_server_name }}"
vtype: string
# El rol instalará automáticamente y configurará ufw con los puertos de jitsi-meet.
# Si estás gestionando un firewall de otra manera, establece esto en falso, y se omitirá ufw.
jitsi_meet_configure_firewall: true
# El rol instalará automáticamente nginx y configurará un vhost para usar con jitsi-meet.
# Si prefieres gestionar los vhosts web a través de un rol separado, establece esto en falso.
jitsi_meet_configure_nginx: true
Compartir pantalla
Jitsi Meet admite la funcionalidad de compartir pantalla a través de extensiones de navegador. Solo la persona que comparte la pantalla necesita tener instalada la extensión; los demás participantes en la reunión podrán ver la pantalla compartida sin instalar nada. Necesitarás construir tu propia extensión de navegador para Chrome y/o Firefox. Consulta la documentación de Jidesha para obtener instrucciones de construcción detalladas. Este rol solo ha sido probado con extensiones personalizadas de Chrome.
Chrome prohíbe la instalación de extensiones desde sitios web no aprobados, así que debes
descargar el archivo .crx
directamente, luego navegar a chrome://extensions
y arrastrar y soltar la extensión para instalarla. Si deseas otorgar soporte de compartir pantalla a otro
participante, comparte la URL de la extensión con ellos
a través del panel de chat de texto de Jitsi Meet.
Dependencias
Técnicamente no es una dependencia, pero deberías revisar thefinn93.letsencrypt para obtener certificados SSL increíblemente fáciles.
Ejemplo de Playbook
Incluir un ejemplo de cómo usar tu rol (por ejemplo, con variables pasadas como parámetros) también es bueno para los usuarios:
- name: Configurar servidor jitsi-meet.
hosts: jitsi
vars:
# Cambia esto para que coincida con la entrada DNS para la IP de tu host.
jitsi_meet_server_name: meet.ejemplo.com
roles:
- role: thefinn93.letsencrypt
become: yes
letsencrypt_email: "webmaster@{{ jitsi_meet_server_name }}"
letsencrypt_cert_domains:
- "{{ jitsi_meet_server_name }}"
tags: letsencrypt
- role: ansible-role-jitsi-meet
jitsi_meet_ssl_cert_path: "/etc/letsencrypt/live/{{ jitsi_meet_server_name }}/fullchain.pem"
jitsi_meet_ssl_key_path: "/etc/letsencrypt/live/{{ jitsi_meet_server_name }}/privkey.pem"
become: yes
tags: jitsi
Ejecutando las pruebas
Este rol usa Molecule y ServerSpec para pruebas. Para usarlo:
pip install molecule
gem install serverspec
molecule test
También puedes ejecutar comandos selectivos:
molecule idempotence
molecule verify
Consulta la documentación de Molecule para más información.
Licencia
MIT
Información del autor
ansible-galaxy install freedomofpress.jitsi-meet