Workshop Requirements Grab a USB key! A computer with: 2+GB RAM - - PowerPoint PPT Presentation

workshop requirements
SMART_READER_LITE
LIVE PREVIEW

Workshop Requirements Grab a USB key! A computer with: 2+GB RAM - - PowerPoint PPT Presentation

Workshop Requirements Grab a USB key! A computer with: 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty, cygwin) Copy DesignateInstall


slide-1
SLIDE 1

Workshop Requirements

  • Grab a USB key!
  • A computer with:

○ 2+GB RAM ○ VirtualBox and Vagrant - Both included on USB drive ○ VM: 30GB disk image ○ Windows users need ssh client (putty, cygwin)

  • Copy “DesignateInstall” from USB drive
  • cd DesignateInstall
  • vagrant up
  • vagrant ssh
slide-2
SLIDE 2

Install, Operate, Rock it

slide-3
SLIDE 3

Rich Megginson Principal Software Engineer, Red Hat rmeggins@redhat.com irc: richm (Freenode)

slide-4
SLIDE 4

Emmanuel Ankutse, Developer irc: eankutse Betsy Luzader, Developer irc: bluzader Vinod Mangalpally, Developer irc: vinod Joe McBride, Development Manager irc: jmcbride

slide-5
SLIDE 5

Ron Rickard

  • Sr. Cloud Engineer, eBay Inc.

rrickard@ebaysf.com irc.freenode.net: rjrjr

slide-6
SLIDE 6
slide-7
SLIDE 7

Are you ready?

  • Installed:

○ VirtualBox and Vagrant - Both included on USB drive

  • Copy “DesignateInstall” from USB drive
  • cd DesignateInstall
  • vagrant up
  • vagrant ssh
slide-8
SLIDE 8

Agenda

  • Install
  • Operations
  • Nova + Neutron
  • How to contribute
slide-9
SLIDE 9

Install Designate

slide-10
SLIDE 10

Install Overview

  • Configure PowerDNS backend
  • Install/Configure Designate Services
  • Install/Configure Designate Client
  • Verify install
slide-11
SLIDE 11

What we are installing

Database PowerDNS Backend Central API AMQP Keystone User Nova / Neutron Sink

slide-12
SLIDE 12

Follow along at...

  • On the vm at:

/home/vagrant/install.txt

  • or online at:

https://wiki.openstack.

  • rg/wiki/Designate/Atlanta/Worksh
  • p_1
slide-13
SLIDE 13

Questions?

slide-14
SLIDE 14

Designate Operations

slide-15
SLIDE 15

Using Designate

Pre-setup in Keystone:

Tenant User admin admin tenantA user1 user2 tenantB user3

slide-16
SLIDE 16

Using Designate (continued)

Scripts pre-loaded on image:

  • penrc.admin
  • penrc.user1
  • penrc.user2
  • penrc.user3
  • getusertoken.sh
  • selectenv.sh
  • createserver.sh
  • deleteserver.sh
  • getserver.sh
  • listservers.sh
slide-17
SLIDE 17

Server Operations

Designate REST API:

  • Generate the Keystone token for the admin user:

○ source openrc.admin ○ . ./selectenv.sh

  • List the servers:

○ ./listservers.sh

  • Create the server:

○ ./createserver.sh ns.example.net. ○ ./listservers.sh

slide-18
SLIDE 18

Server Operations (continued)

Designate client:

  • Setup the environment for the admin user:

○ source openrc.admin

  • List the servers:

○ designate server-list

  • Create the server:

○ designate server-create --name ns.example.com. ○ designate server-list

  • Delete a server:

○ designate server-delete <server-id for ns.example.net.> ○ designate server-list

  • Delete the last server:

○ designate server-delete <server-id for ns.example.com.>

  • Show designate shell:

○ designate

slide-19
SLIDE 19

Domain Operations

  • Setup the environment for the user1 user:

○ source openrc.user1

  • List the domains:

○ designate domain-list

  • Create the domain:

○ designate domain-create --name example.com. --email dns@example. com ○ designate domain-list ○ dig @localhost example.com. soa ○ dig @localhost example.com. ns

  • Setup the environment for the user2 user:

○ source openrc.user2

  • List the domains:

○ designate domain-list

slide-20
SLIDE 20

Domain Operations (continued)

  • Setup the environment for the user3 user:

○ source openrc.user3

  • List the domains:

○ designate domain-list

  • Create the domain:

○ designate domain-create --name test.com. --email dns@test.com ○ designate domain-list

  • Delete the domain:

○ designate domain-delete <domain-id for test.com.> ○ designate domain-list

slide-21
SLIDE 21

Record Operations

  • Setup the environment for the user2 user:

○ source openrc.user2

  • List the records for the example.com. domain:

○ designate domain-list ○ designate record-list <domain-id for example.com.>

  • Create the record:

○ designate record-create --name serverA.example.com. --type A -- data 1.2.3.4 <domain-id for example.com.> ○ designate record-list <domain-id for example.com.> ○ dig @localhost serverA.example.com.

  • Setup the environment for the user1 user:

○ source openrc.user1

  • List the records for the example.com. domain:

○ designate record-list <domain-id for example.com.>

slide-22
SLIDE 22

Record Operations (continued)

  • Setup the environment for the user3 user:

○ source openrc.user3

  • List the records for the example.com. domain:

○ designate record-list <domain-id for example.com.>

  • Setup the environment for the user1 user:

○ source openrc.user1

  • List the records for the example.com. domain:

○ designate record-list <domain-id for example.com.>

  • Delete the record:

○ designate record-delete <domain-id for example.com.> <record-id for serverA.example.com.> ○ designate record-list <domain-id for example.com.>

slide-23
SLIDE 23

Questions?

slide-24
SLIDE 24

Designate + Nova/Neutron

slide-25
SLIDE 25

What we are configuring

Database PowerDNS Backend Central API AMQP Keystone User Nova / Neutron Sink

slide-26
SLIDE 26

Designate Sink and Notification Handlers

  • Designate Sink consumes notification events from:

○ Nova ○ Neutron ○ possibly other services

  • Designate Sink turns events into DNS operations.
  • What events and what DNS operations are performed are determined by custom notification

handlers: ○ nova_fixed ○ neutron_floatingip

slide-27
SLIDE 27

Nova Configuration Changes

  • Enable notifications for Designate in nova.conf:

[DEFAULT] notification_driver = nova.openstack.common.notifier.rpc_notifier notification_topics = monitor notify_on_state_change = vm_and_task_state

slide-28
SLIDE 28

Neutron Configuration Changes

  • Enable notifications for Designate in neutron.conf:

[DEFAULT] notification_driver = neutron.openstack.common.notifier. rpc_notifier notification_topics = monitor

slide-29
SLIDE 29

Designate Configuration Changes

  • Enable Designate Sink in designate.conf:

[service:sink] enabled_notification_handlers = nova_fixed, neutron_floatingip

  • Enable Nova notification handler in designate.conf:

[handler:nova_fixed] domain_id = <random uuid> notification_topics = monitor control_exchange = 'nova' format = '%(display_name)s.%(domain)s'

slide-30
SLIDE 30

Designate Configuration Changes (continued)

  • Enable Neutron notification handler in designate.conf:

[handler:neutron_floatingip] domain_id = <random uuid> notification_topics = monitor control_exchange = 'neutron' format = '%(display_name)s.%(domain)s'

  • Restart Designate services:

○ sudo killall designate-api ○ sudo killall designate-central ○ sudo designate-central & ○ sudo designate-api &

  • Start Designate Sink service:

○ sudo designate-sink &

slide-31
SLIDE 31

Creating and Deleting VM

  • Setup the environment for the user1 user:

○ source openrc.user1

  • List the images:

○ nova image-list

  • List the flavors:

○ nova flavor-list

  • Create the VM instance:

○ nova boot testvm --image <image-id> --flavor <flavor-id> ○ nova list

  • Show the records:

○ designate domain-list ○ designate record-list <domain-id for example.com.> ○ dig @localhost testvm.example.com.

slide-32
SLIDE 32

Create and Delete VM (continued)

  • Delete the VM instance:

○ nova delete testvm ○ nova list

  • Show the records:

○ designate domain-list ○ designate record-list <domain-id for example.com.> ○ dig @localhost testvm.example.com.

slide-33
SLIDE 33

Questions?

slide-34
SLIDE 34

Contribute to Designate

slide-35
SLIDE 35

Useful Links

General OpenStack Links:

How to Contribute Primer: https://wiki.openstack.org/wiki/How_To_Contribute Gerrit Workflow Primer: https://wiki.openstack.org/wiki/Gerrit_Workflow Join the OpenStack Foundation: https://www.openstack.org/join/ Code Review: https://review.openstack.org/

Designate Specific Links:

Bug Tracker: https://bugs.launchpad.net/designate Feature Tracker: https://blueprints.launchpad.net/designate Documentation: https://designate.readthedocs.org DevStack: https://designate.readthedocs.org/en/latest/devstack.html Git (Server): https://github.com/stackforge/designate Git (Client): https://github.com/stackforge/python-designateclient (Yes - These slides will be published online!)

slide-36
SLIDE 36

Getting Involved - Bare Necessities

  • Get a good IRC client.. You’ll need it.

○ Join #openstack-dns and introduce yourself :)

  • Attend the weekly IRC meetings:

○ Wednesdays @ 17:00 UTC in #openstack-meeting-alt ○ Agenda - https://wiki.openstack.org/wiki/Meetings/Designate

  • File a bug/blueprint for your idea - Then add it to the agenda…

○ It’s OK to only have a rough sketch of the idea - that’s usually enough to begin discussions.

  • Sign the Contributors License Agreement
  • Get familiar with Gerrit - We can’t accept patches outside of Gerrit (Gerrit enforce the CLA)
slide-37
SLIDE 37

Plugin Interfaces

Designate has several plugin interfaces, where replacement/additional implementations can be dropped in without the need to modify core code, these can even be provided by out of tree Python modules, avoiding the need to fork for private plugins.

  • New API v1 Endpoints (v2 will eventually be pluggable)
  • Storage Drivers (SQLAlchemy in the box)
  • Backend Drivers (PowerDNS, NSD4, FreeIPA, DynECT, BIND9 (kinda..))
  • Sink’s Notification Handlers

Full List: http://goo.gl/5ZwMzO

slide-38
SLIDE 38

REST APIs

  • Designate uses Flask for the v1 API, and Pecan for the v2

API.

  • designate-api is intentionally a separate service in

designate, we’ve always had a DNS based “API” in mind.

  • API v1 is in “maintenance mode” - We’re trying really hard

to not add new features here!

  • API v2 is still experimental - We have some more changes

to simplify in the pipeline!

slide-39
SLIDE 39

Central Service

  • Designate’s “Core” service - If you’re not sure, it probably belongs in here

somewhere

  • Designate’s other services are all intended to be lightweight, each doing as

little as possible - i.e. only what’s specific to the particular interface.

slide-40
SLIDE 40

Questions?

Slides at http://goo.gl/u5G6rh