Introduction
The whole azeti Engine application stack can be demoed using the azetiCloud demoBundle leveraging docker to virtualize the whole stack. The process itself is pretty straight forward - consultants send customers the demoBundle.zip and the customer only needs to extract it and setup the Vagrant VM.
Vagrant or Docker directly?
Vagrant is a great way to spin up machines easily directly on your windows laptop or macbook. It relies on VirtualBox or other hypervisors, see the online docs. If you are searching for a way to install it on an existing Linux server, e.g. to demo it on a fair or for a short project, you probably want to install a docker-host and use it natively. Go to the next section then, see azeti Engine Demo from Docker Container
Potential Points of Infection to avoid when deploying on Internet
Do not have VM with ssh access via password. (Public key authentication only. UsePrivilegeSeparation yes. StrictModes yes. PermitRootLogin no OR without-password. HostbasedAuthentication no.)
Do not have default or easily guessed credentials. (Plus avoid Tomcat manager. PostgreSQL and InfluxDB only to local Network)
Do not have Docker containers build and run like in dev without any further security restrictions. He must pass https://github.com/docker/docker-bench-security
Prerequisites
Technical prerequisites for customer
For running the DockerDemo the host needs to have the following pre-requisites:
- recent installation of Vagrant (1.7+) (it is freely available from https://www.vagrantup.com)
- Windows 7+, OS X 10.10+
- administrative privileges are required for installing Vagrant and running it
- Vagrant runs on a separate network interface, one has to make sure, that this special interface (usually having IP: 192.168.33.10) is not firewalled; furthermore without further configuration it cannot be reached from the local network
- for Linux/Ubuntu the DockerDemo can be run directly, but you need to have a very recent version of the DockerEngine (1.11+) and DockerCompose (1.7+) and you have to make sure, that there are no conflicting applications running, because usually they get bridged to localhost.
Administrative prerequisites for customer
The customer needs to have a DockerHub (https://hub.docker.com) account, and this account has to be a member of the Azeti organization (https://hub.docker.com/u/azeti/) to access the private DockerImages from Azeti.
Administrative prerequisites for consultant
Basically you need to get hold of the latest demoBundle; it is automatically built and tagged with the corresponding version numbers of the whole stack. The demo bundle can be downloaded from the in-house private Nexus at: http://10.0.0.70:8081/nexus/content/repositories/demos/net/azeti/ssc/demo/demoStack/ This site is only available from inside the Azeti network (or via VPN) and you need Nexus credentials.
Installation the Vagrant-Way
- make sure all pre-requisites are met
- extract demoStack-Version.zip (e.g. demoStack-0.3.6.zip), it will expand into a demo folder
change to this folder, open a command prompt / terminal there and run
vagrant up
it might take some time and will prompt for your DockerHub credentials (username, passwort) and hit Enter
Username for DockerHub: customerusername Password for DockerHub: allyoursecretsarebelongtous
for the first time a lot of files need to be downloaded (2.5 GB) so be patient
after a while you should see something like
Demo has been successfully deployed!
then you can open your browser at http://192.168.33.10:8080/SSCAdminApp
Vagrant Usage
Starting and Stopping
Simply stop the Vargrant VM, either via VirtualBox or (being in the demo folder) for stopping:
vagrant halt
For starting:
vagrant up
Updating
The demo stack can be easily updated without losing data, because it just depends on the private azeti/tomcat-data image, that has the latest releases. For updating you need to login in to the Vagrant VM (password + username are both vagrant) and call the update script
vagrant ssh sudo -s cd /bootstrapping ./update_stack.sh
Uninstalling
The whole stack can seamlessly uninstalled by either removing the Vagrant VM from VirtualBux or (being in the demo folder):
vagrant destroy
This will destroy and purge all your data!
Installation on an existing Docker Hosts
Ensure that you got docker-compose
installed. See the docs on how to install it.
root@ubuntu:~# which docker-compose /usr/local/bin/docker-compose root@ubuntu:~# docker-compose -v docker-compose version 1.7.1, build 0a9ab35 root@ubuntu:~#
Installation on Docker-enabled environments is the fastest way; just open a Bash shell in the demo folder and run.
./init_stack.sh
Post-installation steps
Configure ActiveMQ broker access from the browser
Your browser connects to the ActiveMQ broker to retrieve values. In order to be able of connecting, you need to enter as superadmin and change the parameter net.azeti.cloud.mqtt.url in the cloud configuration. Set it to the URL of your machine. Remember to open the corresponding port in your server.
Upload Site Controller software.
In order to work with templates, you will need to upload a current version of Site Controller to the cloud.
Demo Stack Usage
The demo stack comes with a collection of admin scripts which basically wrap around docker-compose
. Change into the demo directory to access the scripts.
azeti@ubuntu:~/demo$ ll total 48 ... -rwxr-xr-x 1 azeti azeti 101 May 31 17:40 start_stack.sh* -rwxr-xr-x 1 azeti azeti 99 May 31 17:40 stop_stack.sh* -rwxr-xr-x 1 azeti azeti 915 May 31 17:40 update_stack.sh*
Starting and Stopping
Use the start and stop script.
azeti@ubuntu:~/demo$ sudo ./stop_stack.sh Stopping the full stack... Stopping sscdemo_influxdb_1 ... done Stopping sscdemo_db_1 ... done
Same for starting it up again.
azeti@ubuntu:~/demo$ sudo ./start_stack.sh Starting the full stack... Starting influxdb_data ... done Starting db_data ... done Starting db ... done Starting influxdb ... done ...
Update
You can eaisly update the full stack with the script, it does a docker-compose pull ...
and fetches the latest application builds.
azeti@ubuntu:~/demo$ sudo ./update_stack.sh Enter DockerHub username and press [ENTER]: Enter DockerHub password and press [ENTER]: Login Succeeded Stopping the full stack... Stopping sscdemo_tomcat_1 ... done Stopping sscdemo_activemq_1 ... done Stopping sscdemo_influxdb_1 ... done Stopping sscdemo_db_1 ... done Pulling tomcat (azeti/tomcat-data:latest)... latest: Pulling from azeti/tomcat-data 8b87079b7a06: Already exists .. Starting sscdemo_db_data_1 ...Starting activemq ... done Starting tomcat ... done