Designate/Vancouver/Workshop

= Designate: Interactive Workshop - Install and Operate - Openstack Summit, May 2015 =

Designate provides DNSaaS services for OpenStack.

This interactive workshop will guide attendees on how Designate can be installed with PowerDNS. For the purposes of the workshop the various designate components will be installed on a single node. Once installed it shows some of the V1 and V2 APIs for domain and record management. The workshop will conclude by using a tool like dig to retrieve the added records from the PowerDNS backend, showing a fully functional by-hand deployment.

The workshop will also cover the steps for contributing to the development of Designate.

Several of the Designate contributors will be on hand during the workshop to help attendees work through the deployment.

See also: DNS For Your Cloud - OpenStack Designate

Install Designate and its dependencies
cd /home/vagrant/designate

pip install -r requirements.txt

sudo python setup.py develop

Configuration
cd /home/vagrant/designate/etc/designate

The configuration file is set for you at etc/designate/designate.conf, you can diff it with designate.conf.sample if you'd like to see the differences.

Create directory for maintaining designate log files
This directory was referenced by 'logdir' variable in designate.conf file.

mkdir /home/vagrant/logs/

The Designate database
mysql -e 'CREATE DATABASE `designate` CHARACTER SET utf8 COLLATE utf8_general_ci;'

designate-manage database sync

The PowerDNS database
mysql -e 'CREATE DATABASE `powerdns` CHARACTER SET utf8 COLLATE utf8_general_ci;'

designate-manage powerdns sync f26e0b32-736f-4f0a-831b-039a415c481e

Restart pDNS after replacing it's DB
sudo service pdns restart

Start the Designate Central Service
sudo start designate-central

Start the Designate API Service
sudo start designate-api

Start the Designate mDNS Service
sudo start designate-mdns

Start the Designate Pool Manager Service
sudo start designate-pool-manager

Setup the Designate Keystone service and endpoints
First set user 'admin' particulars then create service and endpoint

source /home/vagrant/openrc.admin

keystone service-create --name designate --type dns --description "Designate Service"

keystone endpoint-create --service designate --publicurl http://127.0.0.1:9001

Confirm the service exists
keystone catalog --service dns

Install Designate Client
cd /home/vagrant/python-designateclient

sudo pip install -r requirements.txt

sudo python setup.py develop

Install Designate Horizon Panels
cd /home/vagrant/designate/contrib/designate-dashboard

truncate -s0 requirements.txt

python setup.py sdist

sudo pip install dist/*.tar.gz

sudo cp designatedashboard/enabled/_70_dns_add_group.py /usr/share/openstack-dashboard/openstack_dashboard/local/enabled

sudo cp designatedashboard/enabled/_71_dns_project.py /usr/share/openstack-dashboard/openstack_dashboard/local/enabled

sudo service apache2 restart

Tell designate what you want your ns records to be
designate server-create --name ns.example.com.

= Additional Notes on the workshop =
 * A single node was used so that it is easier to control and easier for newbies to install.