Helmut4 Cluster System
Installation
The cluster installation of Helmut4 requires three (or more) machines with the following system requirements. This installation is more complex compared to the single server instance and requires additional preparations in advance.
We suggest to set up a load balancer which is going to route traffic to any of the machines, consider as well to create a ssl certificate with a dedicated dns name.
Prerequisites
Before you start with the installation make sure that the servers are able to communicate with each other via network. Consider to store the hostname-ip/dns reference in /etc/hosts Please make sure that there is no pre-configured docker or Portainer installed in the first place
Network storage
Helmut4 is storage agnostic which means that the system needs at least one share to be used properly, but it can be used with multiple shares as well. Any share needs to be mounted on the linux host system as well as within specific docker containers. At least one storage should be mounted via fstab before starting the installation as this one is needed. This needs to be installed on every server individually.
Docker environment
As Helmut4 is running within a docker environment the installation of these components are required - if the host is in an restricted network it may be needed to install those in advance or allow temporary access to the accordingly repositories. This needs to be installed on every server individually.
Please follow the docker installation guideline from the official docker documentation
Additionally this two dependencies are needed for Helmut4
httpie
jq
Docker swarm configuration
Establish ssh connections to all servers and run the following command on the first host
Copy the provided token and paste that one on all other hosts to add those as managers
Verify the newly created swarm cluster by running the following command
Portainer configuration
After the successful installation of the docker environment as well as the creation of the swarm cluster, Portainer needs to be set up on every host.
Head now to the main host and navigate to Portainer, which runs on port 9000:
Portainer web GUI http://ip-helmutserver:9000
The default user/password to log in is admin/admin Please consider to change this password as soon as possible!
Navigate to Registries and setup a new, custom one
Repeat this steps on every other host.
Deploy cluster stack
Download the stack file for the cluster from this link:
Navigate to Portainer on the main host and create a new stack:
Click deploy and wait till all instances of the mongodbrs container has been deployed to every host before you continue with the next steps!
Create mongodb replica set
Establish a ssh connection to the main host and run the following commands to create a mongodb replcia set:
We recommend to update Helmut4 to the latest snapshot release after the previous configuration steps.
Misc configuration
Create on every host a text file with the current snapshot version
Set up the helmut-update & helmut-snapshot commands which are being used to update Helmut4
Mount network shares into Docker
Every drive that is to be added to the system must be mapped into the container. To do this, the drive must first be mounted at the operating system level. The drive mounted at the operating system level is now mapped into the Docker container in the following way:
Drive on operating system level: /mnt/helmut
Drive on Docker container level: /Volumes/helmut
Drive mapped between operation system level and Docker container: /mnt/helmut_1:/Volumes/helmut_1
This mnt to Volumes mapping is set up, to allow setting up easy workflows on Mac OS X, as every network share is mounted to /Volumes There are 5 different containers that always have to have access to specific volumes to run specific tasks. For example: If the server should create projects on a specific volume, this volume needs to be mapped into the FX Container, as this container is responsible for creating projects. To add volume to a container follow these steps:
click on “primary”
click on “stacks”
click on “helmut4”
click on the tab “Editor"
Navigate to the following services (fx, io, co, streams, users) and adjust the volumes entry
Add or change the volumes and click update the stack once finished with this task.
Example: adding share "testing" which is mapped on the host into /mnt/testing volumes:
- /etc/localtime:/etc/localtime:ro
- /mnt/helmut:/Volumes/helmut
- /mnt/testing:/Volumes/testing
Updating Helmut4
There are two update channels available for Helmut 4 - main & development An update can be accessed with sudo rights on the command line of the host
Main update channel | helmut-snapshot
Stable releases will be published every three months, the latest release can be found in the release notes. This version is covered by the support contract and the software maintenance agreement is valid for this version. Critical bugs will be fixed in stable release. Please consider checking the supported Adobe versions before updating
After executing the update command the Portainer password is required
Development update channel | helmut-update
The development channel is only for internal use and requires an additional password, this one can be requested by contacting support@moovit.de
Be aware that those builds are MAINLY UNTESTED and can cause problems!
Last updated