Installing the Distributed DDNS Service Node - Adaptive Applications - BlueCat Gateway - 21.1

BlueCat Distributed DDNS Administration Guide

prodname
BlueCat Gateway
version_custom
21.1
Once you have installed the Distributed DDNS Application Node Gateway container, you can download and install the Distributed DDNS Service Node on multiple host machines.

Prerequisites:

Before proceeding to install the Adaptive Application, ensure that the following prerequisites are met:
  • 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.

  • Ensure you have purchased the Distributed DDNS Adaptive Application from BlueCat.
  • A Quay account that has been granted read access to the Distributed DDNS private repository.

    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:

When you first install the Distributed DDNS Adaptive Application, BlueCat recommends performing the following:
  • 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
Tip: BlueCat advises all customers to map Docker volumes for their respective workspace and logs directory to save data from the Distributed DDNS Adaptive Application. Volumes are completely managed by Docker and you do not need to set permissions manually when using Docker volumes. This is also the recommended practice for Docker containers. However, if you prefer to mount data and log volumes to your local machine, you must manually set rwx (read, write, execute) permissions to those directories before running the container. If you do not map data or log volumes to your local machine during installation, the Distributed DDNS Adaptive Application will write all the data to the container by default. If you then stop or restart the container, all this data will be lost.
To set permissions to external volumes, run the following command:
chmod -R o=rwx <mapped volume>
Note:
  • 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.
To install the custom Gateway image:
  1. Log in to the console of the Distributed DDNS Service Node Gateway instance.
  2. From the host machine, run the following command:
    docker login quay.io
  3. At the prompt, enter your Quay user name and password obtained when generating the encrypted password.
  4. Download the Distributed DDNS Service Node container from Quay using the following command:
    docker pull quay.io/bluecat/distributed_ddns_service:21.1
  5. Verify that the Docker image has been loaded to the machine using the following command:
    docker image ls
  6. Edit the run_ddns_container.sh script.
  7. 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.
  8. Execute the run_ddns_container.sh script using the following command:
    sudo ./run_ddns_container.sh
    When 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
Where the docker run parameters are as follows:
Parameter Description
--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:
  • ddns.keytab: contains information to process GSS-TSIG updates. This file must not be modified.
  • ddns.yaml: contains the Distributed DDNS settings.
  • logging_receiver.yaml: logging settings for the DDNS Receiver.
  • logging_processor.yaml: logging settings for the DDNS Processor.
  • mariadb.yaml: settings for the database service connection.
  • queue.yaml: settings for the RabbitMQ connection.
-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.