Installing DCHQ On-Premise - Automating Docker App Deployment & Life-Cycle Management on Any Cloud
Installing DCHQ On-Premise - Automating Docker App Deployment & Life-Cycle Management on Any Cloud
https://www.youtube.com/watch?v=39dTw8zYccg
In this blog, we will go over the detailed steps for installing DCHQ On-Premise.We offer a couple of options for installing the platform on a supported Linux host:
1. Using an installation shell script – that can be downloaded from the DCHQ website
2. Using DCHQ.io Hosted PaaS – where DCHQ On-Premise is modeled as an application template that can be deployed on any registered Linux host
In this blog, we will cover the installation shell script method only.
Step 1: Fill out the request form on http://dchq.co/dchq-on-premise.html
In order to get access to the install shell script, a user needs to fill out a form on http://dchq.co/dchq-on-premise.html.
Â
 Step 2: Download the installation shell script
Once the request form has been submitted, a URL to
the software download page will be sent the users. This page contains
the installation shell script along with some out-of-box application templates & plug-ins for Java, Ruby, Python, and PHP stacks.
Download the installation shell script from the software download page.
Â
 Â
Step 3: Ensure that you have a supported Linux host
DCHQ
On-Premise is supported on Ubuntu, CentOS and Red Hat Enterprise Linux.
We support the versions that are certified with Docker – so please
check Docker’s official page before attempting the DCHQ installation.The installation requires at 14 GB of Memory if you plan on running 1,000 containers or more. Our scalability tests were performed with up to 25,000 running containers with this configuration.
Of course, make sure that you have root access to the Linux host on which you’re going to install DCHQ On-Premise.
The installation shell script does the following:
Allows a user to configure the email settings. The following inputs can be provided.
SMTP Server & Port – the server that will be used to send email
alerts for new user sign ups or when performance issues occur
FROM Email Address – the email address used to send confirmations to new user sign ups (e.g. support@<your-domain>.com)
BCC Email Address – the email address that should be included in BCC when new users sign up
Allows a user to set a proxy for Docker
Checks if Docker is installed – if not, it will install Docker
Pulls the public DCHQ images needed to run DCHQ On-Premise:
dchq/dchq-on-premise-v2-tomcat:latest-v2
dchq/dchq-on-premise-v2-rabbitmq:latest-v2
dchq/dchq-on-premise-v2-postgres:latest-v2
dchq/dchq-on-premise-v2-redis:latest-v2
dchq/dchq-on-premise-v2-solr:latest-v2
Runs the containers with all the environment variable bindings needed
Note: The RabbitMQ & Postgres passwords are randomly generated using 36 alphanumeric characters
Step 4: Run the script on a supported Linux host
Again, make sure that you have root access to this Linux host, and then do the following.
chmod 700 dchq_server_install.sh
You will be prompted to set up the email settings (optional) and the
proxy (optional). If you type N, the installation will go through and
run all the containers needed for DCHQ On-Premise. The installation
should not take more than 10 minutes – depending on your bandwidth and
how fast the images can be pulled from Docker Hub.
Â
Â
Â
Â
Step 5: Log into DCHQ On-Premise and Save the RabbitMQ & Postgres passwords for your record
Once the installation is complete, a confirmation message should show up with the following information.
DCHQ On-Premise URL & Default Login Credentials
Make sure that you save this information for your records.
Log into DCHQ On-Premise using the default credentials ([email protected] / admin123).
Â
Â
Step 6 (IMPORTANT): Update the System Settings in the DCHQ web console
In order to ensure that new hosts registered can
establish communication with RabbitMQ and that the agent can be
installed correctly, please update the System Setting page from the Manage drop-down.Here are the entries that you need to update:
dchq.agent.script.url
– this is the location of the DCHQ agent install script. It’s currently
hosted on DCHQ.co’s software download page as well as on Dropbox
http://dchq.co/uploads/3/5/3/5/3535863/dchq_agent_install_v2.sh
https://www.dropbox.com/s/fxys4nyhy7t209h/dchq_agent_install_v2.sh?dl=1
However many customers may want to host this script on Amazon S3 or on
a local server. So just ensure that this script is accessible from the
hosts that you will register on DCHQ On-Premise to orchestrate Docker
app deployments.
dchq.agent.connect.ip – this is the public IP of the host that’s running DCHQ On-Premise
dchq.agent.connect.port – this is the host port that is mapped to RabbitMQ’s port 5672. By default, this is 32902 – but you can always run docker ps to make sure that you’re copying the right port
dchq.base.url – this is the URL that is listed in the installation complete confirmation message. By default, it’s
o  <Public IP of DCHQ On-Premise Host>:32901
You can run docker ps to ensure that you’re copying the right host port that is mapped to Tomcat’s port 8080.Â
Â
   Step 7: Create a Cluster
In order to test a basic application deployment, we need to either:
Automate
the provisioning of Linux hosts on any of the 12 cloud providers we
support (e.g. OpenStack, CloudStack, AWS, DigitalOcean, Rackspace,
Microsoft Azure, SoftLayer, Google Compute Engine, etc.), or
Register an existing Linux host that could be running anywhere
Before we can register a Linux host, we need to create a cluster. This can be done by navigating to Manage > Clusters and then clicking on the + button. In the recorded video, we made things simple and selected Docker networking.Â
 Step 8: Add an existing Linux host to orchestrate Docker application deployments
Now that we’ve added our cluster, we will register an existing Linux host by navigating to Manage > Bare-Metal Server & VM and then clicking on the + button to select Any Host/VM.Here are the parameters required:
·     Name: This could be any string value (e.g. DEV Server)
·     IP: This is the IP of the host you’re trying to register
·     Cluster: Select the cluster that you’ll be associating this server with
IMPORTANT – once you click Save, an auto-generated script will be provided that needs to be executed on the Linux host you’re trying to add.
The script expects at least 3 arguments and would like something like this:
curl -Ls  <dchq.agent.script.url> | bash -s <DCHQ Server Key> <dchq.agent.connect.ip> <dchq.agent.connect.port>
All of these parameters can be overridden in the System Settings page by the Cloud Admin.
Note that if Weave had been enabled on this cluster, then the script would follow this format.
Registering the 1st Server in the Weave Cluster
curl -Ls  <dchq.agent.script.url> | bash -s <DCHQ Server Key> <dchq.agent.connect.ip> <dchq.agent.connect.port> weave.local <weave-password>
where <weave.password> is a random password that you can pass.
Registering Additional Servers in the Weave Cluster
curl -Ls  <dchq.agent.script.url> | bash -s <DCHQ Server Key> <dchq.agent.connect.ip> <dchq.agent.connect.port> weave.local <weave-password> <weave.ip>
where <weave.ip> is the IP address of the 1st server in the Weave cluster
 Step 9: Create a basic Wordpress with MySQL application template
Navigate to Manage > Templates and then click on the + button to add a Docker Compose template.
You
can either copy & paste the template (below) or you can download
the template from the DCHQ software download page, and then import it by
click on the Actions menu and select Import Template.
Wordpress:
image: wordpress:latest
mem_limit: 1g
publish_all: true
environment:
- WORDPRESS_DB_PASSWORD={{MySQL|MYSQL_ROOT_PASSWORD}}
- WORDPRESS_DB_HOST={{MySQL|container_ip}}:3306
- WORDPRESS_DB_USER={{MySQL|MYSQL_USER}}
- WORDPRESS_DB_NAME={{MySQL|MYSQL_DATABASE}}
MySQL:
image: mysql:latest
mem_limit: 1g
publish_all: false
environment:
- MYSQL_USER=root
- MYSQL_DATABASE=wordpress
- MYSQL_ROOT_PASSWORD={{alphanumeric | 12}}
Â
Step 10: Assign the newly created cluster as the default cluster
Navigate to Manage > Users and edit the admin user. Select the newly created cluster as the Default Cluster for this user.
 Step 11: Request the Wordpress application from the Self-Service Library
Navigate to Library and click Run on the Wordpress application.
Once the application is up and running, access the IP on the exposed
port for Wordpress (i.e. the host port mapped to 8080) to make sure
that the app was successfully deployed.
If you run into any issues, please shoot me an email.
Â
Download DCHQ On-Premise Now!!