oneoffadmins.ansible_role_jitsi_meet

jitsi-meet

Instala y configura el software de videoconferencia Jitsi Meet.

Requisitos

Debes tener el DNS apuntando al servidor y claves SSL. Si aún 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 el host, como iptables, configura jitsi_meet_configure_firewall: false. Si usas AWS o algo similar, deberás abrir esos puertos en el grupo de seguridad correspondiente.

Variables del Rol

# Los archivos de certificado por defecto son /var/lib/prosody/localhost.{crt,key}
# NO los estamos configurando aquí, porque cadenas vacías para certificados personalizados
# causarán que las tareas de configuración personalizada de Nginx se omitan.
jitsi_meet_ssl_cert_path: ''
jitsi_meet_ssl_key_path: ''

# Sin SSL, "localhost" es el valor predeterminado correcto. Si se proporciona información de SSL,
# necesitaremos un nombre de dominio real. Usando el FQDN inferido de Ansible, pero puedes
# establecer el valor de la variable de forma explícita si usas un nombre de host más corto.
# Si la configuración automática de Nginx está deshabilitada, también usa el 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 autenticación "anónima", lo que permite a cualquier persona usar el servidor de videoconferencia.
jitsi_meet_authentication: anonymous

# La instalación del paquete de 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 usar esos, sobrescribe estas variables, pero asegúrate
# de almacenar los secretos de forma segura, por ejemplo, con 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 predeterminado en /etc/jitsi/videobridge/config afirma que el puerto predeterminado
# para JVB es "5275", pero la guía de instalación manual hace referencia a "5347".
# https://github.com/jitsi/jitsi-meet/blob/master/doc/manual-install.md
jitsi_meet_videobridge_port: 5347

# Si Jitsi Videobridge está detrás de un NAT, establece estos valores para que ICE funcione.
jitsi_meet_videobridge_nat:
  local_ip: ''
  public_ip: ''

# Una adición reciente amigable para la privacidad, ve 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 uso compartido de pantalla para Chrome. Necesitarás construir y empaquetar una extensión de navegador
# específicamente para tu dominio; ve 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 el disco, para copiar al host de destino. El nombre remoto
# será el nombre base de la ruta proporcionada aquí.
jitsi_meet_desktop_sharing_chrome_extension_filename: ''

# Configuración de uso compartido de pantalla para Firefox. Establece max_version en '42' y disabled en 'false'
# si deseas usar el uso compartido de pantalla en 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 mensajes interactivos durante la instalación
# del paquete deb de jitsi-meet. Si usas certificados SSL personalizados, puede que debas 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á y configurará automáticamente ufw con los puertos de jitsi-meet.
# Si estás gestionando un firewall de otra manera, establece esto en false, y ufw será omitido.
jitsi_meet_configure_firewall: true

# El rol instalará automáticamente nginx y configurará un vhost para su uso con jitsi-meet.
# Si prefieres gestionar vhosts web a través de un rol separado, establece esto en false.
jitsi_meet_configure_nginx: true

Uso compartido de pantalla

Jitsi Meet admite la funcionalidad de uso compartido de 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 necesidad de 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 detalladas de construcción. Este rol solo se ha probado con extensiones personalizadas de Chrome.

Chrome prohíbe la instalación de extensiones desde sitios web no aprobados, por lo que debes descargar el archivo .crx directamente, luego navegar a chrome://extensions y arrastrar y soltar la extensión para instalarla. Si deseas otorgar a otro participante soporte para uso compartido de pantalla, 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 mirar thefinn93.letsencrypt para obtener certificados SSL de forma increíblemente fácil.

Ejemplo de Playbook

Incluir un ejemplo de cómo usar tu rol (por ejemplo, con variables pasadas como parámetros) también es útil para los usuarios:

- name: Configurar el servidor de jitsi-meet.
  hosts: jitsi
  vars:
    # Cambia esto para que coincida con la entrada DNS para tu IP de 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 utiliza Molecule y ServerSpec para las 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

Freedom of the Press Foundation

Acerca del proyecto

Installs Jitsi Meet videoconferencing software

Instalar
ansible-galaxy install oneoffadmins.ansible_role_jitsi_meet
Licencia
Unknown
Descargas
98
Propietario