- On the host machine that will be running the Distributed DDNS Service Node, you must ensure that the disk size is at least 1.5 times the amount of RAM on the host machine. For example, if the amount of RAM on the host machine is 4GB, you must have at least 6GB of free disk space.
- Make note of the following configuration information from the Distributed
DDNS Data Node setup:
- The IP address of one of the Distributed DDNS Data Nodes in the cluster.
- The Distributed DDNS Data Node username and password.
- The port of the Distributed DDNS Data Node. By default, this value is 3306.
- The name of the Distributed DDNS Data Node database. By default, this value is distributed_ddns.
- The following ports must be free and open on each Distributed DDNS Service
Node host machine:
- 53: Used by the Distributed DDNS service.Note: Verify that the line dns=dnsmasq is commented out in the /etc/NetworkManager/NetworkManager.conf file and reboot the host machine to ensures that the port is available. You must also verify that the DNS server is listed in the /etc/resolv.conf file.
- 4900: Used by the Control service.
- 2600-2612: Used by the Quagga service.
You can use the sudo lsof -Pni:<port_number> command to verify if individual ports are in use or the sudo lsof -Pni command to verify what ports are in use.
- 53: Used by the Distributed DDNS service.
- Ensure you have purchased the Distributed DDNS Adaptive Application from BlueCat.
- A Quay account that has been granted read access to the Distributed DDNS
For more information on setting up your Quay account, refer to the information that was provided when you purchased the Distributed DDNS Adaptive Application.
- A Docker CLI password.
You can create one by clicking Generate Encrypted Password under Docker CLI Password on the Account Settings page in Quay.
Before you begin:
- Define a workspace:
- A workspace is the logical location for you to place your workflows and associated data, including configurations, libraries, requirements, permissions, and customizations; a workspace can be a Docker volume (recommended) or a volume on your local machine. For more information, refer to the Workspace section in the BlueCat Gateway Administration Guide.
- Define a logs directory:
- A logs directory can be a Docker volume (recommended) or a volume on your local machine
chmod -R o=rwx <mapped volume>
- You can name the workspace and logs directory to anything.
- The Distributed DDNS Adaptive Application saves configuration and workflow data to the workspace, and all execution and session logs to the mapped logs directory. If you do not map a workspace or a logs directory, all the configuration and logging data is written to the container by default.
- Log in to the console of the Distributed DDNS Service Node Gateway instance.
- From the host machine, run the following
docker login quay.io
- At the prompt, enter your Quay user name and password obtained when generating the encrypted password.
- Download the Distributed DDNS Service Node container from Quay using the
docker pull quay.io/bluecat/distributed_ddns_service:21.1
- Verify that the Docker image has been loaded to the machine using the
docker image ls
- Edit the run_ddns_container.sh script.
- Provide values for the missing variables of the script and save the changes.
The following values are empty and must be entered in the script:
- MARIADB_IP: The IP address of a Distributed DDNS Data Node.
- MARIADB_PASSWORD: The password that is created for the specified user. By default, the password is ddns_admin.
- QUEUE_PASSWORD: The password of the default user that will be used to connect to RabbitMQ. This will be granted full access to the default vhost.
- Execute the run_ddns_container.sh script using the
sudo ./run_ddns_container.shWhen you execute the run_ddns_container.sh script, the script creates a new Docker container that runs the Distributed DDNS Service Node. The script runs the following docker command:
docker run -d \ --privileged \ --tty \ --env-file $ddns_env_file \ --name distributed_ddns \ --restart unless-stopped \ --net=host \ --ulimit nofile=150000 \ -v /etc/resolv.conf:/etc/resolv.conf \ -v quagga_config:/etc/quagga/ \ -v quagga_log:/var/log/quagga/ \ -v ddns_config:/ddns/ddns_service/etc/ \ -v ddns_log:/var/log/distributed_ddns/ \ -v control_config:/ddns/services_control/config/ \ -v control_log:/var/log/services_control/ \ -v rabbit_data:/var/lib/rabbitmq/ \ -v rabbit_config:/etc/rabbitmq/ \ -v rabbit_log:/var/log/rabbitmq/ \ -v ssl_config:/ddns/ssl_config \ quay.io/bluecat/distributed_ddns_service:21.1
|--env-file||The file containing environment variables that are passed to the Docker container.|
|--name||The name of the Docker instance node.
Note: If you are installing multiple Distributed DDNS Service Nodes, the Docker instance name of each node must be unique.
|-v /etc/resolv.conf:/etc/resolv.conf||Binds the /etc/resolv.conf file from the host machine to the /etc/resolv.conf file of the Docker container.|
|-v quagga_config:/etc/quagga/||Persists the configuration files of Quagga in the Docker volume quagga_config to the host system.|
|-v quagga_log:/var/log/quagga/||Persists the log files of Quagga in the Docker volume quagga_log to the host system.|
|-v ddns_config:/ddns/ddns_services/etc/||Persists the configuration files of Distributed DDNS in the
Docker volume ddns_config. The configuration
files are as follows:
|-v ddns_log:/var/log/ddns_proxy/||Persists the log files of DDNS Receiver and DDNS Processor in the Docker volume ddns_log to the host system.|
|-v control_config:/ddns/services_control/config/||Persists the Control Service's configuration files in the Docker volume control_config to the host system.|
|-v control_log:/var/log/services_control/||Persists the Control Service's log files in the Docker volume control_log to the host system.|
|-v rabbit_data:/var/lib/rabbitmq/||Persists the data files of RabbitMQ in the Docker volume rabbit_data to the host system.|
|-v rabbit_config:/etc/rabbitmq/||Persists the configuration files of RabbitMQ in the Docker volume rabbit_config to the host system.|
|-v rabbit_log:/etc/rabbitmq/||Persists the log files of RabbitMQ in the Docker volume rabbit_log to the host system.|
|-ssl_config:/ddns/ssl_config||Persists the certificates for the secure operation of a Distributed DDNS Node in the Docker volume ssl_config to the host system.|