Automating Wowza Streaming Engine installation

automateboss

Wowza maintainers make the installation process pretty easy by itself. But here are some milestones too.

At first, we need to scroll up the whole eternity to read the license agreement. I know, agreement reading definitely important. But you don’t need to repeat this reading operation a hundred of times. Routine of Wowza installation is raising increasingly with the number of servers.

Here is my solution: combine 2 scripts – bash and except. The automation processes – downloading, execution mode configuration and, of course, Wowza Streaming Engine installation.

What is the expect?


Expect is a special shell interpreter. The main providing feature – automatically go through prompts and questions during shell commands execution. There are a lot of subjects like software installation, SSL request generation and so on.

Expect syntax differs from bash like awk, but there is nowhere to confuse. You don’t need to learn a syntax as a whole programming language to use this interpreter for your needs.

You have to install expect and expect-devel packages to execute expect-scripts. It’s easy to find out in your distro repository.

Instruction of automation


1 Put on your server 2 scripts and make them executable. Don’t forget to write current Wowza verison, your own login credentials and license key.

wowza.sh

#!/bin/sh
wowza_version=4.4.0

distro=$(lsb_release -si)
case "$distro" in
 "Ubuntu" | "Debian" | "LinuxMint" ) sudo apt-get -y install expect curl;;
 "Fedora" ) sudo dnf -y install expect curl;;
 "CentOS" | "RedHatEnterpriseServer" ) sudo yum -y install expect curl;;
esac

curl -o /tmp/wowza.run https://www.wowza.com/downloads/WowzaStreamingEngine-4-4-0/WowzaStreamingEngine-${wowza_version}-linux-x64-installer.run && chmod 755 wowza.run
if [[ ! -f wowza.exp ]]
then curl https://github.com/cazorla19/packer_builds/blob/master/debian-build2/scripts/wowza.exp
fi
chmod 755 wowza.exp && ./wowza.exp

wowza.exp

#!/usr/bin/expect -f

set timeout -1
spawn /tmp/wowza.run --mode text
for {set i 0} {$i < 47} {incr i 1} {
 send -- "\r"
}

expect -gl "*Do you accept this agreement?*"
send -- "yes\r"
expect -gl "*License Key*"
send -- "[your_license_key_here]r"
expect -gl "*User Name*"
send -- "[your_username_here]\r"
expect -gl "*Password*"
send -- "[your_password_here]\r"
expect -gl "*Confirm Password*"
send -- "[your_password_here]\r"
expect -gl "*Start Wowza Streaming Engine automatically*"
send -- "yes\r"
expect -gl "*Do you want to continue?*"
send -- "yes\r"

expect eof

2 Run just one Bash script

./wowza.sh

Generally after script execution new Wowza instance should be fully deployed to your server. Engine Manager should be fully configured with access credentials from your expect script.

Let me know if you have easier way to automate Wowza installation. I think this solution still leaves much to be desired.

Advertisements

One thought on “Automating Wowza Streaming Engine installation

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s