me_vlad.wowza
ansible-wowza
Rôle Ansible pour installer et configurer Wowza Streaming Engine sur Linux.
Note sur l'idempotence
Veuillez noter : la vérification de l'installation déjà présente sur le serveur de Wowza Streaming Engine se fait en déterminant l'état du fichier de licence Wowza qui est installé par défaut au chemin /usr/local/WowzaStreamingEngine/conf/Server.license.
Exigences
Les exigences sont énumérées dans les métadonnées du rôle.
Le nœud de contrôle doit avoir python-bcrypt installé. Pour la méthode d'encodage de mot de passe bcrypt, python-passlib et ansible 2.7 ou une version plus récente sont nécessaires sur le nœud de contrôle.
Pour utiliser ce rôle pour installer Wowza Streaming Engine, une clé de licence valide doit être définie en tant que variable wowza_license_key. Il faut également définir les variables wowza_admin_user et wowza_admin_password.
Variables de rôle
Variables de rôle par défaut
# Installer simplement WSE sans aucun ajustement ni changement de configuration
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"
# Doit être situé sur le système de fichiers avec l'option de montage exec !!!
wowza_install_workdir: "/root"
wowza_install_script: wowza_install_script.exp
# Utilisateur administrateur Wowza
wowza_admin_user: ""
# Mot de passe administrateur Wowza
wowza_admin_password: ""
# Clé de licence Wowza Streaming Engine
wowza_license_key: ""
# groupes : admin|advUser, admin, basic
# groupe en lecture seule 'basic' supporté depuis WSE 4.8.8.01
wowza_users: []
# - nom : sampleuser
# mot de passe : sampleuser_secret
# groupes : admin|advUser
# - nom : readonlyuser
# mot de passe : readonlyuser_secret
# groupes : basic
# Variables de chemin par défaut pour 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"
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 }}"
# Configurations de Wowza Streaming Engine avec données 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'
# Configuration du Vhost Wowza
wowza_streaming_ip: '*'
wowza_streaming_port: ['1935']
wowza_tcp_nodelay: no
wowza_acceptor_backlog: 100
# Méthode d'authentification par défaut pour les fournisseurs HTTP et le gestionnaire WSE
# none, admin-basic, admin-digest, admin-file-digest
# Défini sur admin-file-digest si l'authentification digestfile REST est activée.
wowza_admin_auth_method: "{{ 'admin-file-digest' if wowza_rest_auth_method == 'digestfile' else 'admin-basic' }}"
wowza_admin_ip: '*'
wowza_admin_port: 8086
# SSL Wowza
wowza_ssl_enable: no
wowza_streaming_ssl_ip: '*'
wowza_streaming_ssl_port: 443
wowza_ssl_keystore_file: 'keystore.jks'
wowza_ssl_keystore_password: ''
# Activer Wowza SSL ci-dessus pour utiliser 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
# Adresse d'écoute de l'API REST
wowza_rest_ip: '*'
wowza_rest_port: 8087
wowza_rest_allowlist: ['127.0.0.1']
wowza_rest_blocklist: []
# Méthode d'authentification par défaut pour l'API REST.
# none, basic, digest, digestfile ou remotehttp
# 'none' et 'basic' ne sont pas compatibles avec WSE 4.8.5.
wowza_rest_auth_method: "{{ 'basic' if wowza_version is version('4.8.7', '>=') else 'digestfile' }}"
# Méthode d'encodage de mot de passe
# cleartext (pour authentification basic et digest);
# digest (pour authentification digestfile);
# bcrypt (pour authentification basic).
# bcrypt est pris en charge depuis WSE 4.8.8.01, fonctionne avec ansible >= 2.7 et python-passlib sur un nœud de contrôle
wowza_rest_password_encoding: "{{ 'digest' if wowza_rest_auth_method == 'digestfile' else 'bcrypt' }}"
wowza_rest_docs_enable: no
wowza_rest_docs_port: 8089
# Interface de commande Wowza
wowza_command_enable: no
wowza_command_ip: '127.0.0.1'
wowza_command_port: 8083
# Interface JMX 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 Wowza
wowza_mediacache_enable: no
# Taille de tas Production, Développement ou personnalisée par exemple 8000M
wowza_tuning_heapsize: Development
# Modules 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
Exemple de Playbook
- hosts: mediaservers
roles:
- me_vlad.wowza
Licence
MIT
Informations sur l'auteur
Vlad V. Teteria
Wowza Streaming Engine setup
ansible-galaxy install me_vlad.wowza