wowza
ansible-wowza
Ansible роль для установки и настройки Wowza Streaming Engine на Linux.
Примечание о идемпотентности
Обратите внимание: проверка на наличие установленного Wowza Streaming Engine на сервере осуществляется путем определения статуса лицензии Wowza, которая по умолчанию устанавливается по пути /usr/local/WowzaStreamingEngine/conf/Server.license.
Требования
Требования перечислены в метаданных роли.
На управляющем узле должен быть установлен python-bcrypt. Для метода кодирования паролей bcrypt требуется python-passlib и ansible версии 2.7 или новее на управляющем узле.
Чтобы использовать эту роль для установки Wowza Streaming Engine, необходимо установить действующий ключ лицензии в переменной wowza_license_key. Также необходимо установить переменные wowza_admin_user и wowza_admin_password.
Переменные роли
Переменные по умолчанию
# Просто установить WSE без каких-либо изменений и настроек
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"
# Должен находиться в файловой системе с опцией монтирования exec!!!
wowza_install_workdir: "/root"
wowza_install_script: wowza_install_script.exp
# Администратор Wowza
wowza_admin_user: ""
# Пароль администратора Wowza
wowza_admin_password: ""
# Ключ лицензии Wowza Streaming Engine
wowza_license_key: ""
# группы: admin|advUser, admin, basic
# группа только для чтения 'basic' поддерживается с WSE 4.8.8.01
wowza_users: []
# - name: sampleuser
# password: sampleuser_secret
# groups: admin|advUser
# - name: readonlyuser
# password: readonlyuser_secret
# groups: basic
# Переменные путей по умолчанию 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 }}"
# Конфигурации Wowza Streaming Engine с конфиденциальными данными
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'
# Конфигурация Wowza Vhost
wowza_streaming_ip: '*'
wowza_streaming_port: ['1935']
wowza_tcp_nodelay: no
wowza_acceptor_backlog: 100
# Метод аутентификации по умолчанию для HTTP провайдеров и WSE Manager
# none, admin-basic, admin-digest, admin-file-digest
# Установить на admin-file-digest, если включена REST аутентификация digestfile.
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: ''
# Включить Wowza SSL выше для использования WebRTC
wowza_webrtc_enable: no
wowza_webrtc_admin_enable: no
wowza_webrtc_admin_ip: '*'
wowza_webrtc_admin_port: 9443
# Wowza REST API
wowza_rest_enable: yes
# Адрес прослушивания REST API
wowza_rest_ip: '*'
wowza_rest_port: 8087
wowza_rest_allowlist: ['127.0.0.1']
wowza_rest_blocklist: []
# Метод аутентификации по умолчанию для REST API.
# none, basic, digest, digestfile или remotehttp
# 'none' и 'basic' несовместимы с WSE 4.8.5.
wowza_rest_auth_method: "{{ 'basic' if wowza_version is version('4.8.7', '>=') else 'digestfile' }}"
# Метод кодирования пароля
# cleartext (для базовой и digest аутентификации);
# digest (для аутентификации digestfile);
# bcrypt (для базовой аутентификации).
# bcrypt поддерживается с WSE 4.8.8.01, работает с ansible >= 2.7 и python-passlib на управляющем узле
wowza_rest_password_encoding: "{{ 'digest' if wowza_rest_auth_method == 'digestfile' else 'bcrypt' }}"
wowza_rest_docs_enable: no
wowza_rest_docs_port: 8089
# Интерфейс команд Wowza
wowza_command_enable: no
wowza_command_ip: '127.0.0.1'
wowza_command_port: 8083
# Интерфейс 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
# Кэш медиа Wowza
wowza_mediacache_enable: no
# Производство или Разработка или пользовательский размер, например, 8000M
wowza_tuning_heapsize: Development
# Модули 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
Пример плейбука
- hosts: mediaservers
roles:
- me_vlad.wowza
Лицензия
MIT
Информация об авторе
Влад В. Тетерия
Wowza Streaming Engine setup
ansible-galaxy install server-labs/ansible-role-wowza