me_vlad.wowza

ansible-wowza

This is an Ansible role designed to install and set up the Wowza Streaming Engine on Linux.

Important Note About Idempotence

Idempotence means that this role will check if the Wowza Streaming Engine is already installed on the server. It does this by looking at the status of the license file located at /usr/local/WowzaStreamingEngine/conf/Server.license.

Requirements

Requirements can be found in the role's metadata.

The control node must have python-bcrypt installed. If you want to use bcrypt for passwords, you also need python-passlib and Ansible version 2.7 or newer.

To use this role for installing Wowza Streaming Engine, you must set a valid license key in the wowza_license_key variable. Additionally, set the variables wowza_admin_user and wowza_admin_password.

Role Variables

Default Role Variables

# Install WSE without any additional configurations
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"

# Must be located on the file system with exec mount option!!!
wowza_install_workdir: "/root"

wowza_install_script: wowza_install_script.exp

# Wowza admin user
wowza_admin_user: ""
# Wowza admin password
wowza_admin_password: ""
# Wowza Streaming Engine license key
wowza_license_key: ""

# User groups: admin|advUser, admin, basic
# read only group 'basic' supported from WSE 4.8.8.01
wowza_users: []
#  - name: sampleuser
#    password: sampleuser_secret
#    groups: admin|advUser
#  - name: readonlyuser
#    password: readonlyuser_secret
#    groups: basic

# Default paths for 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"

# Various Wowza configuration files
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 }}"

# Configs with sensitive information
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 configuration
wowza_streaming_ip: '*'
wowza_streaming_port: ['1935']
wowza_tcp_nodelay: no
wowza_acceptor_backlog: 100
# Default authentication method for HTTP providers and WSE Manager
# none, admin-basic, admin-digest, admin-file-digest
# Use admin-file-digest if digestfile REST authentication is enabled.
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 configuration
wowza_ssl_enable: no
wowza_streaming_ssl_ip: '*'
wowza_streaming_ssl_port: 443
wowza_ssl_keystore_file: 'keystore.jks'
wowza_ssl_keystore_password: ''
# Enable Wowza SSL above to use WebRTC
wowza_webrtc_enable: no
wowza_webrtc_admin_enable: no
wowza_webrtc_admin_ip: '*'
wowza_webrtc_admin_port: 9443

# Wowza REST API settings
wowza_rest_enable: yes
# Address for the REST API to listen on
wowza_rest_ip: '*'
wowza_rest_port: 8087
wowza_rest_allowlist: ['127.0.0.1']
wowza_rest_blocklist: []
# Default authentication method for the REST API.
# none, basic, digest, digestfile or remotehttp
# 'none' and 'basic' are not compatible with WSE 4.8.5.
wowza_rest_auth_method: "{{ 'basic' if wowza_version is version('4.8.7', '>=') else 'digestfile' }}"
# Password encoding method
# cleartext (for basic and digest auth);
# digest (for digestfile auth);
# bcrypt (for basic auth, supported from WSE 4.8.8.01, requires ansible >= 2.7 and 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 command interface settings
wowza_command_enable: no
wowza_command_ip: '127.0.0.1'
wowza_command_port: 8083

# Wowza JMX interface settings
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 Mediacache settings
wowza_mediacache_enable: no

# Set development size or a custom size e.g. 8000M
wowza_tuning_heapsize: Development

# Wowza modules settings
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

Installing from Ansible Galaxy

You can install this role using Ansible Galaxy with the following command:

ansible-galaxy install me_vlad.wowza

Example Playbook

Here's an example of how to use this role in a playbook:

- hosts: mediaservers
  roles:
    - me_vlad.wowza

License

This role is licensed under the MIT license.

Author Information

This role is created by Vlad V. Teteria.

Installa
ansible-galaxy install me_vlad.wowza
Licenza
mit
Download
2.9k
Proprietario