me_vlad.wowza
ansible-wowza
Rol de Ansible para instalar y configurar Wowza Streaming Engine en Linux.
Nota sobre idempotencia
Tenga en cuenta: la verificación de si Wowza Streaming Engine ya está instalado en el servidor se realiza determinando el estado del archivo de licencia de Wowza, que se instala por defecto en la ruta /usr/local/WowzaStreamingEngine/conf/Server.license.
Requerimientos
Los requisitos están listados en los metadatos del rol.
El nodo de control necesita tener instalado python-bcrypt. Para el método de codificación de contraseñas bcrypt se requiere python-passlib y Ansible 2.7 o versión más reciente en el nodo de control.
Para utilizar este rol para instalar Wowza Streaming Engine, es necesario establecer una clave de licencia válida como variable wowza_license_key. También se deben establecer las variables wowza_admin_user y wowza_admin_password.
Variables del Rol
Variables predeterminadas del rol
# Solo instalar WSE sin cambios ni configuraciones
wowza_default_install: no
wowza_version: "4.8.18+1"
wowza_download_path: "https://www.wowza.com/downloads/WowzaStreamingEngine-{{ wowza_version | regex_replace('\\.', '-') }}/"
wowza_installer: "WowzaStreamingEngine-{{ wowza_version }}-linux-x64-installer.run"
wowza_installer_checksum: "sha1:573a7bf7e8239ef143f67f073ba3ec288f473b7a"
# Debe estar ubicado en el sistema de archivos con opción de montaje exec!!!
wowza_install_workdir: "/root"
wowza_install_script: wowza_install_script.exp
# Usuario administrador de Wowza
wowza_admin_user: ""
# Contraseña del administrador de Wowza
wowza_admin_password: ""
# Clave de licencia de Wowza Streaming Engine
wowza_license_key: ""
# grupos: admin|advUser, admin, basic
# Grupo de solo lectura 'basic' disponible desde WSE 4.8.8.01
wowza_users: []
# - name: sampleuser
# password: sampleuser_secret
# groups: admin|advUser
# - name: readonlyuser
# password: readonlyuser_secret
# groups: basic
# Variables de ruta predeterminadas de Wowza Streaming Engine
wowza_directory: "/usr/local/WowzaStreamingEngine"
wowza_config_directory: "{{ wowza_directory }}/conf"
wowza_manager_directory: "{{ wowza_directory }}/manager"
wowza_manager_config_directory: "{{ wowza_manager_directory }}/conf"
wowza_applications_directory: "{{ wowza_directory }}/applications"
wowza_lib_directory: "{{ wowza_directory }}/lib"
wowza_updates_directory: "{{ wowza_directory }}/updates"
wowza_log_directory: "/var/log/wowza"
wowza_systemd_include_dir: "/etc/systemd/system/WowzaStreamingEngine.service.d"
wowza_systemd_service_files:
- "/usr/lib/systemd/system/WowzaStreamingEngine.service"
- "/usr/lib/systemd/system/WowzaStreamingEngineManager.service"
wowza_uninstall_files:
- "{{ wowza_directory }}/uninstall"
- "{{ wowza_directory }}/Uninstall\ Wowza\ Streaming\ Engine.desktop"
wowza_license_file: "{{ wowza_config_directory }}/Server.license"
# Configuración del servidor Wowza
wowza_config_server: "{{ wowza_config_directory }}/Server.xml"
wowza_config_vhost: "{{ wowza_config_directory }}/VHost.xml"
wowza_config_vhosts: "{{ wowza_config_directory }}/VHosts.xml"
wowza_config_tune: "{{ wowza_config_directory }}/Tune.xml"
wowza_config_mediacache: "{{ wowza_config_directory }}/MediaCache.xml"
wowza_config_startup_streams: "{{ wowza_config_directory }}/StartupStreams.xml"
wowza_config_admin_password: "{{ wowza_config_directory }}/admin.password"
wowza_config_publish_password: "{{ wowza_config_directory }}/publish.password"
wowza_config_jmxremote_access: "{{ wowza_config_directory }}/jmxremote.access"
wowza_config_jmxremote_password: "{{ wowza_config_directory }}/jmxremote.password"
wowza_config_log4j: "{{ wowza_config_directory }}/log4j.properties"
wowza_config_log4j2: "{{ wowza_config_directory }}/log4j2-config.xml"
wowza_config_log: "{{ wowza_config_log4j2 if wowza_version is version('4.8.6', '>=') else wowza_config_log4j }}"
wowza_manager_config_log4j: "{{ wowza_manager_config_directory }}/log4j.properties"
wowza_manager_config_log4j2: "{{ wowza_manager_config_directory }}/log4j2-config.xml"
wowza_manager_config_log: "{{ wowza_manager_config_log4j2 if wowza_version is version('4.8.6', '>=')
else wowza_manager_config_log4j }}"
wowza_manager_config_tomcat_log4j: "{{ wowza_manager_config_directory }}/tomcat-log4j.properties"
wowza_manager_config_winstone_log4j: "{{ wowza_manager_config_directory }}/winstone-log4j.properties"
wowza_manager_config_servlet_log4j: "{{ wowza_manager_config_tomcat_log4j if wowza_version is version('4.7.8', '>=')
else wowza_manager_config_winstone_log4j }}"
wowza_config_files:
- "{{ wowza_config_server }}"
- "{{ wowza_config_vhost }}"
- "{{ wowza_config_vhosts }}"
- "{{ wowza_config_tune }}"
- "{{ wowza_config_mediacache }}"
- "{{ wowza_config_startup_streams }}"
- "{{ wowza_config_admin_password }}"
- "{{ wowza_config_publish_password }}"
- "{{ wowza_config_jmxremote_access }}"
- "{{ wowza_config_jmxremote_password }}"
- "{{ wowza_config_log }}"
- "{{ wowza_manager_config_log }}"
- "{{ wowza_manager_config_servlet_log4j }}"
# Configuraciones de Wowza Streaming Engine con datos sensibles
wowza_config_secret_files:
- "{{ wowza_license_file }}"
- "{{ wowza_config_admin_password }}"
- "{{ wowza_config_publish_password }}"
- "{{ wowza_config_jmxremote_access }}"
- "{{ wowza_config_jmxremote_password }}"
- "{{ wowza_config_mediacache }}"
wowza_updatelog4j2_directory: "{{ wowza_updates_directory }}/updatelog4j2"
wowza_updatelog4j2_url: "https://www.wowza.com/downloads/log4jupdater/updatelog4j.zip"
wowza_log4j2_version: '2.17.1'
# Configuración del Vhost de Wowza
wowza_streaming_ip: '*'
wowza_streaming_port: ['1935']
wowza_tcp_nodelay: no
wowza_acceptor_backlog: 100
# Método de autenticación predeterminado para Proveedores HTTP y WSE Manager
# ninguno, admin-basico, admin-digest, admin-file-digest
# Establecer en admin-file-digest si la autenticación REST digestfile está habilitada.
wowza_admin_auth_method: "{{ 'admin-file-digest' if wowza_rest_auth_method == 'digestfile' else 'admin-basic' }}"
wowza_admin_ip: '*'
wowza_admin_port: 8086
# Wowza SSL
wowza_ssl_enable: no
wowza_streaming_ssl_ip: '*'
wowza_streaming_ssl_port: 443
wowza_ssl_keystore_file: 'keystore.jks'
wowza_ssl_keystore_password: ''
# Habilitar Wowza SSL arriba para usar WebRTC
wowza_webrtc_enable: no
wowza_webrtc_admin_enable: no
wowza_webrtc_admin_ip: '*'
wowza_webrtc_admin_port: 9443
# API REST de Wowza
wowza_rest_enable: yes
# Dirección de escucha de la API REST
wowza_rest_ip: '*'
wowza_rest_port: 8087
wowza_rest_allowlist: ['127.0.0.1']
wowza_rest_blocklist: []
# Método de autenticación predeterminado para la API REST.
# ninguno, básico, digest, digestfile o remotehttp
# 'none' y 'basic' no son compatibles con WSE 4.8.5.
wowza_rest_auth_method: "{{ 'basic' if wowza_version is version('4.8.7', '>=') else 'digestfile' }}"
# Método de codificación de contraseñas
# texto claro (para autenticación básica y digest);
# digest (para autenticación digestfile);
# bcrypt (para autenticación básica).
# bcrypt soportado desde WSE 4.8.8.01, funciona con ansible >= 2.7 y python-passlib en un nodo de control
wowza_rest_password_encoding: "{{ 'digest' if wowza_rest_auth_method == 'digestfile' else 'bcrypt' }}"
wowza_rest_docs_enable: no
wowza_rest_docs_port: 8089
# Interfaz de comando de Wowza
wowza_command_enable: no
wowza_command_ip: '127.0.0.1'
wowza_command_port: 8083
# Interfaz JMX de Wowza
wowza_jmx_enable: no
wowza_jmx_ip: '127.0.0.1'
wowza_jmx_rmi_hostname: localhost
wowza_jmx_rmi_connection_port: 8084
wowza_jmx_rmi_registry_port: 8085
# Mediacache de Wowza
wowza_mediacache_enable: no
# Producción o Desarrollo o tamaño personalizado, por ejemplo, 8000M
wowza_tuning_heapsize: Desarrollo
# Módulos de Wowza
wowza_modules_collection_url: 'https://www.wowza.com/downloads/forums/collection'
wowza_modules_streampublisher_enable: no
wowza_modules_streampublisher: 'wse-plugin-streampublisher.zip'
wowza_modules_dvrrecordercontrol_enable: no
wowza_modules_dvrrecordercontrol: wse-plugin-dvrrecordercontrol.zip
wowza_modules_packetizercontrol_enable: no
wowza_modules_packetizercontrol: wse-plugin-packetizercontrol.zip
wowza_modules_transcodercontrol_enable: no
wowza_modules_transcodercontrol: wse-plugin-transcodercontrol.zip
Ansible Galaxy
ansible-galaxy install me_vlad.wowza
Ejemplo de Playbook
- hosts: mediaservers
roles:
- me_vlad.wowza
Licencia
MIT
Información del Autor
Vlad V. Teteria
Wowza Streaming Engine setup
ansible-galaxy install me_vlad.wowza