Dev Guide: - Added notes to assist whoever is using the guide for when they run into an error that I previously encountered (repeatedly). - Added apt-get update as first step Sample Config File: - Added a sample pool configuration - Removed pool backend configs - Created config file specific to kilo and juno - Removed backends=bind9 Juno Guide: - Corrected a few typos in the guide for juno - Updated mysql commands - Changed config file name Kilo Guide: - Created a duplicate of the ubuntu-dev guide and modified it to work specifically for the kilo branch Change-Id: I9343852b2834affd0fe6c1e3f85c0f25002a0ee7
4.1 KiB
Installing Juno on Ubuntu
Architecture
Please see production-architecture
for general production
architecture notes.
- Ubuntu as the Operating System
- Designate
- RabbitMQ
- MySQL
backend-powerdns
- Keystone for AuthN / AuthZ (Not included in this guide)
Prerequisites
Install
$ sudo apt-get install mysql-server rabbitmq-server pdns-server pdns-backend-mysql
RabbitMQ
Note
Do the following commands as "root" or via sudo <command>
Create a user:
$ rabbitmqctl add_user designate designate
Give the user access to the / vhost:
$ sudo rabbitmqctl set_permissions -p "/" designate ".*" ".*" ".*"
MySQL
Note
The following commands should be done using the mysql command line or similar.
Create the MySQL user
- ::
-
$ mysql -u root -p Enter password: <enter your password here>
mysql> GRANT ALL ON designate.* TO 'designate'@'localhost' IDENTIFIED BY 'designate'; mysql> GRANT ALL ON powerdns.* TO 'powerdns'@'localhost' IDENTIFIED BY 'powerdns';
Create the database
mysql> CREATE DATABASE `designate` CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> CREATE DATABASE `powerdns` CHARACTER SET utf8 COLLATE utf8_general_ci;
PowerDNS
Edit the config:
$ sudo editor /etc/powerdns/pdns.conf
Settings:
launch = gmysql
Edit the MySQL backend settings:
$ sudo editor /etc/powerdns/pdns.d/pdns.local.gmysql.conf
Settings:
gmysql-host=localhost
gmysql-dbname=powerdns
gmysql-user=powerdns
gmysql-password=powerdns
Delete a couple unnecessary files:
$ rm /etc/powerdns/bindbackend.conf
$ rm /etc/powerdns/pdns.d/pdns.simplebind.conf
Installing using Source (Git)
- Install pre-requisites:
$ sudo apt-get install libmysqlclient-dev
$ sudo apt-get install git python-dev python-pip
$ sudo apt-get build-dep python-lxml
- Clone the repository:
$ git clone git://github.com/openstack/designate designate
- Change directory to the newly cloned repository
$ cd designate
- Checking out a specific version:
In some cases you might want to pin the repository version to a specific version of the repository like a stable one.
Example for the Juno release:
$ git checkout stable/juno
- Install all dependencies using pip
$ sudo pip install -r requirements.txt
$ sudo pip install MySQL-python
- Install Designate:
$ sudo python setup.py develop
- Copy over configuration files
$ sudo cp -R etc/designate /etc/
$ ls /etc/designate/*.sample | while read f; do sudo cp $f $(echo $f | sed "s/.sample$//g"); done
Create directories
Since we are not running packages some directories are not created for us.
$ sudo mkdir /var/lib/designate /var/log/designate
# Needed if you are running designate as a non root user.
$ sudo chown designate /var/lib/designate /var/log/designate
Configuring
Designate
$ sudo editor /etc/designate/designate.conf
Copy or mirror the configuration from this sample file here:
/examples/basic-config-sample-juno.conf
Sync Database schemas
Initialize and sync the database schemas for Designate and PowerDNS:
$ designate-manage database sync
$ designate-manage powerdns sync
Register Designate with Keystone
For howto register Designate with Keystone you can check the code used in the devstack plugin.
There should be no version registered in the URL for the endpoint.
Starting the services
Central:
$ designate-central
API:
$ designate-api
You should now be able to create zones and use nslookup or dig towards localhost to query pdns for it.