TABLE OF CONTENTS

Overview

This article describes how to prepare the DNS services on your installation for the upgrade to CloudBlue Commerce 21.4 or later.
Important:

  • The current version of CloudBlue Commerce on your installation must be 20.5.
  • You must perform the instructions of this article before upgrading to CloudBlue Commerce 21.4 or later.

The Preparation Procedure

The procedure consists of the following steps:

  1. Check that the BIND DNS service is not installed on your management node.
  2. (Optional) If you have PowerDNS DNS services on your installation, you can migrate from PowerDNS to BIND. 
  3. Prepare BIND services for the upgrade (if any).
  4. Prepare PowerDNS services for the upgrade (if any).

Examples:

  • If you have only BIND DNS services on your installation, complete step A, skip step B, complete step C, and skip step D.
  • If you have only PowerDNS DNS services on your installation, skip steps A, B, and C, and complete step D.
  • If you have PowerDNS and BIND DNS services on your installation, complete step A, skip step B, and complete steps C and D.

Step A: Check Your Management Node

Make sure that the BIND DNS service is not installed on your management node. If it is installed, you must uninstall it:

  1. Prepare a list of domains whose DNS zones are served by the BIND DNS service installed on your management node.
  2. For each of those domains, in the provider control panel, go to Services > Domains > DOMAIN > the DNS tab and switch Hosting type to External.
  3. In the activation parameters of the DNS Hosting resource types and DNS Hosting service templates (if any) of those domains, replace your management node's BIND DNS service with another BIND DNS service.
  4. Go to Infrastructure > Service Nodes > MANAGEMENT_NODE > the Packages tab and uninstall the bind9 service package.
  5. Decide what to do to the DNS zones of those domains. If you need to continue hosting the DNS zone of a domain on the DNS servers managed by CloudBlue Commerce, go to Services > Domains > DOMAIN > the DNS tab, switch Hosting type to Internal, and notify the registrar of that domain that the nameservers were changed.

Step B: Migrate from PowerDNS to BIND (Optional)

If you have PowerDNS on your installation, you can migrate to BIND:

Important: Your PowerDNS services must host only those DNS zones that are managed by CloudBlue Commerce.

  1. Prepare a list of the identifiers of the PowerDNS services. You can obtain identifiers of DNS services at Services > Domains > the DNS tab > the Nameservers subtab.
  2. Prepare the same number of BIND services. You can use already deployed services or deploy new ones, as described here.
  3. Prepare a list of the identifiers of the BIND services that the PowerDNS services will be replaced with. You can obtain identifiers of DNS services at Services > Domains > the DNS tab > the Nameservers subtab.
  4. Obtain the nameservers-sync.py script and upload it to your management node. The script is in the internal part of this article.
  5. Prepare a list of DNS resources and DNS service templates where the PowerDNS services are specified in activation parameters. To do this, execute this command for each PowerDNS service:
    python nameservers-sync.py --check --from=SOURCE_DNS_SERVICE_ID --to=TARGET_DNS_SERVICE_IDS
    where
    SOURCE_DNS_SERVICE_ID is the identifier of a PowerDNS service.
    TARGET_DNS_SERVICE_IDS are the identifiers of the BIND DNS services (use commas to separate identifiers).
    Note: Output of this command contains DNS resources where a source DNS service is specified in activation parameters, and domains that are served by that source DNS service. By using these DNS resources, you can obtain the DNS service templates that the DNS resources are included in.
    Examples:
    python nameservers-sync.py --check --from=1 --to=3,4
    python nameservers-sync.py --check --from=2 --to=3,4
  6. In the activation parameters of these DNS resources and DNS service templates, replace PowerDNS services with BIND services.
  7. Create the same DNS zone files on the BIND servers as those that are on the PowerDNS servers. To do this, execute this command for each PowerDNS service:
    python nameservers-sync.py --sync --from=SOURCE_DNS_SERVICE_ID --to=TARGET_DNS_SERVICE_IDS
    where
    SOURCE_DNS_SERVICE_ID is the identifier of a PowerDNS service.
    TARGET_DNS_SERVICE_IDS are the identifiers of the BIND DNS services (use commas to separate identifiers).
    Examples:
    python nameservers-sync.py --sync --from=1 --to=3,4
    python nameservers-sync.py --sync --from=2 --to=3,4

    Check that the output of the script does not contain failed domains. If there are failed domains, you must fix these domains and perform this step again.
    Note: You can obtain detailed logs in /var/log/pa/nameservers_sync.log.
  8. Wait for all Update named ... tasks to complete.
  9. Check that all PowerDNS services are now not in use. You can check this at Services > Domains > the DNS tab > the Nameservers subtab.
  10. Perform the following actions for each PowerDNS server:
    1. Obtain its service (or FrontNet) IP address.
    2. Assign the same service IP address to the BIND server that is a replacement for this PowerDNS server.
  11. Uninstall all PowerDNS services and remove all PowerDNS servers from CloudBlue Commerce.
  12. Perform the following actions for each PowerDNS server:
    1. Obtain its service (or FrontNet) IP address.
    2. Unassign this service IP address from this PowerDNS server.

Step C: Prepare Your BIND Services for the Upgrade

Complete the following steps:

  1. Log in to your management node.
  2. For each BIND server, using its communication (or BackNet) IP address, check that it is accessible through SSH.
  3. Obtain the prepare-bind-dns-for-upgrade.py script and upload it to your management node. The script is in the internal part of this article.
  4. Run the script:
    python prepare-bind-dns-for-upgrade.py

Step D: Prepare Your PowerDNS Services for the Upgrade

Complete the following steps:

  1. Log in to your management node.
  2. For each PowerDNS server, using its communication (or BackNet) IP address, check that it is accessible through SSH.
  3. Obtain the prepare-power-dns-for-upgrade.py script and upload it to your management node. The script is in the internal part of this article.
  4. Run the script:
    python prepare-power-dns-for-upgrade.py

Internal Part

See this internal article.