Deploy OpenStack designate with kolla-ansible
During Ocata release, OpenStack DNS-as-a-Service (Designate) support was implemented in OpenStack kolla project.
This post will guide you through a basic deployment and tests of designate service.
Install required dependencies and tools for kolla-ansible and designate.
# yum install -y epel-release
# yum install -y python-pip python-devel libffi-devel gcc openssl-devel ansible ntp wget bind-utils
# pip install -U pipInstall Docker and downgrade to 1.12.6. At the time of writing this post libvirt had issues to connect with D-Bus due SElinux issues with Docker 1.13.
# curl -sSL https://get.docker.io | bash
# yum downgrade docker-engine-1.12.6 docker-engine-selinux-1.12.6
# yum install -y python-docker-pyConfigure Docker daemon to allow insecure-registry (Use the IP where your remote registry will be located).
# mkdir -p /etc/systemd/system/docker.service.d
# tee /etc/systemd/system/docker.service.d/kolla.conf <<-'EOF'
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --insecure-registry 172.28.128.3:4000
MountFlags=shared
EOFReload systemd daemons and start/stop/disable/enable the following services.
Download Ocata registry created in tarballs.openstack.org, skip this step if images used are custom builds or downloaded from DockerHub.
Create kolla registry from downloaded tarball.
Install kolla-ansible.
Configure kolla globals.yml configuration file with the following content.
Change values when necessary (IP addresses, interface names).
This is a sample minimal configuration.
Configure designate options in globals.yml.
dns_interface must be network reachable from nova instances if internal DNS resolution is needed.
Configure inventory, add the nodes in their respective groups.
Generate passwords.
Ensure the environment is ready to deploy with prechecks. Until prechecks does not succeed do not start deployment. Fix what is necessary.
Pull Docker images on the servers, this can be skipped because will be made in deploy step, but doing it first will ensure all the nodes have the images you need and will minimize the deployment time.
Deploy kolla-ansible and do a woot for kolla ;)
Create credentials file and source it.
Check that all containers are running and none of them are restarting or exiting.
Install required python clients
Execute a base OpenStack configuration (public and internal networks, cirros image).
Do no execute this script if custom networks are going to be used.
Create a sample designate zone.
Configure designate sink to make use of the previously created zone, sink will need zone_id to automatically create neutron and nova records into designate.
After configure designate-sink.conf, reconfigure designate to make use of this configuration.
List networks.
Update the network with a dns_domain.
Ensure dns_domain is properly applied.
Create a new instance in the previously updated network.
Once the instance is ACTIVE, check the IP associated.
List records in the designate zone.
As you can see there is a record in designate associated with the instance IP.
Validate that designate resolves the DNS record.
You can use designate mDNS service or directly to bind9 servers to validate the test.
If you find any issue with designate in kolla-ansible or kolla, please fill a bug https://bugs.launchpad.net/kolla-ansible/+filebug
Regards, Eduardo Gonzalez
Last updated
Was this helpful?