Configure an existing BIND9 server for Designate

Configure an existing BIND9 server for Designate

If you already have a running BIND9 server, you can configure and use it for the Designate deployment.

The example configuration below has three predeployed BIND9 servers.

To configure an existing BIND9 server for Designate:

  1. Open your BIND9 server UI.

  2. Verify that the BIND9 configuration files contain rdnc.key for Designate.

    The following text is an example of /etc/bind/named.conf.local on the managed BIND9 server with the IPs allowed for Designate and rdnc.key:

    key "designate" {
      algorithm hmac-sha512;
      secret "4pc+X4PDqb2q+5o72dISm72LM1Ds9X2EYZjqg+nmsS7F/C8H+z0fLLBunoitw==";
    };
    controls {
      inet 10.0.0.3 port 953
      allow {
         172.16.10.101;
         172.16.10.102;
         172.16.10.103;
      }
      keys {
        designate;
      };
    };
    
  3. Open classes/cluster/cluster_name/openstack in your Git project repository.

  4. In init.yml, add the following parameters:

    bind9_node01_address: 10.0.0.1
    bind9_node02_address: 10.0.0.2
    bind9_node03_address: 10.0.0.3
    mysql_designate_password: password
    keystone_designate_password: password
    designate_service_host: ${_param:openstack_control_address}
    designate_bind9_rndc_algorithm: hmac-sha512
    designate_bind9_rndc_key: >
      4pc+X4PDqb2q+5o72dISm72LM1Ds9X2EYZjqg+nmsS7F/C8H+z0fLLBunoitw==
    designate_domain_id: 5186883b-91fb-4891-bd49-e6769234a8fc
    designate_pool_ns_records:
      - hostname: 'ns1.example.org.'
        priority: 10
    designate_pool_nameservers:
      - host: ${_param:bind9_node01_address}
        port: 53
      - host: ${_param:bind9_node02_address}
        port: 53
      - host: ${_param:bind9_node03_address}
        port: 53
    designate_pool_target_type: bind9
    designate_pool_target_masters:
      - host: ${_param:openstack_control_node01_address}
        port: 5354
      - host: ${_param:openstack_control_node02_address}
        port: 5354
      - host: ${_param:openstack_control_node03_address}
        port: 5354
    designate_pool_target_options:
      host: ${_param:bind9_node01_address}
      port: 53
      rndc_host: ${_param:bind9_node01_address}
      rndc_port: 953
      rndc_key_file: /etc/designate/rndc.key
    designate_version: ${_param:openstack_version}
    
  5. In control.yml, modify the parameters section. Add targets according to the number of BIND9 severs that will be managed, three in our case.

    Example:

    designate:
        server:
          backend:
            bind9:
              rndc_key: ${_param:designate_bind9_rndc_key}
              rndc_algorithm: ${_param:designate_bind9_rndc_algorithm}
          pools:
            default:
              description: 'test pool'
              targets:
                default:
                  description: 'test target1'
                default1:
                  type: ${_param:designate_pool_target_type}
                  description: 'test target2'
                   masters: ${_param:designate_pool_target_masters}
                  options:
                    host: ${_param:bind9_node02_address}
                    port: 53
                    rndc_host: ${_param:bind9_node02_address}
                    rndc_port: 953
                    rndc_key_file: /etc/designate/rndc.key
                default2:
                  type: ${_param:designate_pool_target_type}
                  description: 'test target3'
                   masters: ${_param:designate_pool_target_masters}
                  options:
                    host: ${_param:bind9_node03_address}
                    port: 53
                    rndc_host: ${_param:bind9_node03_address}
                    rndc_port: 953
                    rndc_key_file: /etc/designate/rndc.key
    
  6. Add your changes to a new commit.

  7. Commit and push the changes.

Once done, proceed to deploy Designate as described in Deploy Designate.