2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant -...

40
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

Transcript of 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant -...

Page 1: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

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

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

Install, Operate, Rock it

Page 3: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

Rich Megginson

Principal Software Engineer, Red [email protected]: richm (Freenode)

Page 4: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

Emmanuel Ankutse, Developerirc: eankutse

Betsy Luzader, Developerirc: bluzader

Vinod Mangalpally, Developerirc: vinod

Joe McBride, Development Managerirc: jmcbride

Page 5: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

Ron RickardSr. Cloud Engineer, eBay [email protected]: rjrjr

Page 6: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,
Page 7: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

Are you ready?

● Installed:○ VirtualBox and Vagrant - Both included on USB drive

● Copy “DesignateInstall” from USB drive● cd DesignateInstall● vagrant up● vagrant ssh

Page 8: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

Agenda

● Install● Operations● Nova + Neutron● How to contribute

Page 9: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

Install Designate

Page 10: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

Install Overview

- Configure PowerDNS backend- Install/Configure Designate Services- Install/Configure Designate Client- Verify install

Page 11: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

What we are installing

Database

PowerDNSBackend

Central

API AMQPKeystone

User

Nova / Neutron

Sink

Page 13: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

Questions?

Page 14: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

Designate Operations

Page 15: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

Using Designate

Pre-setup in Keystone:Tenant User

admin admin

tenantA user1user2

tenantB user3

Page 16: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

Using Designate (continued)

Scripts pre-loaded on image:● openrc.admin● openrc.user1● openrc.user2● openrc.user3● getusertoken.sh● selectenv.sh● createserver.sh● deleteserver.sh● getserver.sh● listservers.sh

Page 17: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

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

Page 18: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

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

Page 19: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

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

Page 20: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

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 [email protected]○ designate domain-list

● Delete the domain:○ designate domain-delete <domain-id for test.com.>○ designate domain-list

Page 21: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

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.>

Page 22: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

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.>

Page 23: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

Questions?

Page 24: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

Designate + Nova/Neutron

Page 25: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

What we are configuring

Database

PowerDNSBackend

Central

API AMQPKeystone

User

Nova / Neutron

Sink

Page 26: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

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

Page 27: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

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

Page 28: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

Neutron Configuration Changes

● Enable notifications for Designate in neutron.conf:

[DEFAULT]

notification_driver = neutron.openstack.common.notifier.rpc_notifier

notification_topics = monitor

Page 29: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

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'

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

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 &

Page 31: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

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.

Page 32: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

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.

Page 33: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

Questions?

Page 34: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

Contribute to Designate

Page 35: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

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!)

Page 36: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

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)

Page 37: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

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

Page 38: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

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!

Page 39: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

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.

Page 40: 2+GB RAM VirtualBox and Vagrant - Both included on USB ... · 2+GB RAM VirtualBox and Vagrant - Both included on USB drive VM: 30GB disk image Windows users need ssh client (putty,

Questions?Slides at http://goo.gl/u5G6rh