SlideShare a Scribd company logo
1 of 40
Download to read offline
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
Install, Operate, Rock it
Rich Megginson 
Principal Software Engineer, Red Hat 
rmeggins@redhat.com 
irc: richm (Freenode)
Emmanuel Ankutse, Developer 
irc: eankutse 
Betsy Luzader, Developer 
irc: bluzader 
Vinod Mangalpally, Developer 
irc: vinod 
Joe McBride, Development Manager 
irc: jmcbride
Ron Rickard 
Sr. Cloud Engineer, eBay Inc. 
rrickard@ebaysf.com 
irc.freenode.net: rjrjr
Are you ready? 
● Installed: 
○ VirtualBox and Vagrant - Both included on USB drive 
● Copy “DesignateInstall” from USB drive 
● cd DesignateInstall 
● vagrant up 
● vagrant ssh
Agenda 
● Install 
● Operations 
● Nova + Neutron 
● How to contribute
Install Designate
Install Overview 
- Configure PowerDNS backend 
- Install/Configure Designate Services 
- Install/Configure Designate Client 
- Verify install
What we are installing 
Database 
Central 
Backend PowerDNS 
Nova / Neutron 
Keystone API AMQP 
User 
Sink
Follow along at... 
- On the vm at: 
/home/vagrant/install.txt 
- or online at: 
https://wiki.openstack. 
org/wiki/Designate/Atlanta/Worksh 
op_1
Questions?
Designate Operations
Using Designate 
Pre-setup in Keystone: 
Tenant User 
admin admin 
tenantA user1 
user2 
tenantB user3
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
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
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
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
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
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.>
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.>
Questions?
Designate + 
Nova/Neutron
What we are configuring 
Database 
Central 
Backend PowerDNS 
Nova / Neutron 
Keystone API AMQP 
User 
Sink
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
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
Neutron Configuration Changes 
● Enable notifications for Designate in neutron.conf: 
[DEFAULT] 
notification_driver = neutron.openstack.common.notifier. 
rpc_notifier 
notification_topics = monitor
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'
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 &
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.
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.
Questions?
Contribute to Designate
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!)
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)
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
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!
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.
Questions? 
Slides at http://goo.gl/u5G6rh

More Related Content

What's hot

Windows Server 2016 Webinar
Windows Server 2016 WebinarWindows Server 2016 Webinar
Windows Server 2016 WebinarMen and Mice
 
Part 2 - Local Name Resolution in Windows Networks
Part 2 - Local Name Resolution in Windows NetworksPart 2 - Local Name Resolution in Windows Networks
Part 2 - Local Name Resolution in Windows NetworksMen and Mice
 
LXC on Ganeti
LXC on GanetiLXC on Ganeti
LXC on Ganetikawamuray
 
Namespaces for Local Networks
Namespaces for Local NetworksNamespaces for Local Networks
Namespaces for Local NetworksMen and Mice
 
Coredns nodecache - A highly-available Node-cache DNS server
Coredns nodecache - A highly-available Node-cache DNS serverCoredns nodecache - A highly-available Node-cache DNS server
Coredns nodecache - A highly-available Node-cache DNS serverYann Hamon
 
How to send DNS over anything encrypted
How to send DNS over anything encryptedHow to send DNS over anything encrypted
How to send DNS over anything encryptedMen and Mice
 
DNS High-Availability Tools - Open-Source Load Balancing Solutions
DNS High-Availability Tools - Open-Source Load Balancing SolutionsDNS High-Availability Tools - Open-Source Load Balancing Solutions
DNS High-Availability Tools - Open-Source Load Balancing SolutionsMen and Mice
 
What is new in BIND 9.11?
What is new in BIND 9.11?What is new in BIND 9.11?
What is new in BIND 9.11?Men and Mice
 
Encrypted DNS - DNS over TLS / DNS over HTTPS
Encrypted DNS - DNS over TLS / DNS over HTTPSEncrypted DNS - DNS over TLS / DNS over HTTPS
Encrypted DNS - DNS over TLS / DNS over HTTPSAlex Mayrhofer
 
Paris Redis Meetup Introduction
Paris Redis Meetup IntroductionParis Redis Meetup Introduction
Paris Redis Meetup IntroductionGregory Boissinot
 
Trevor McDonald - Nagios XI Under The Hood
Trevor McDonald  - Nagios XI Under The HoodTrevor McDonald  - Nagios XI Under The Hood
Trevor McDonald - Nagios XI Under The HoodNagios
 
Keeping DNS server up-and-running with “runit
Keeping DNS server up-and-running with “runitKeeping DNS server up-and-running with “runit
Keeping DNS server up-and-running with “runitMen and Mice
 
The DNSSEC KSK of the root rolls
The DNSSEC KSK of the root rollsThe DNSSEC KSK of the root rolls
The DNSSEC KSK of the root rollsMen and Mice
 

What's hot (20)

Windows Server 2016 Webinar
Windows Server 2016 WebinarWindows Server 2016 Webinar
Windows Server 2016 Webinar
 
Part 2 - Local Name Resolution in Windows Networks
Part 2 - Local Name Resolution in Windows NetworksPart 2 - Local Name Resolution in Windows Networks
Part 2 - Local Name Resolution in Windows Networks
 
2 technical-dns-workshop-day1
2 technical-dns-workshop-day12 technical-dns-workshop-day1
2 technical-dns-workshop-day1
 
LXC on Ganeti
LXC on GanetiLXC on Ganeti
LXC on Ganeti
 
7 technical-dns-workshop-day3
7 technical-dns-workshop-day37 technical-dns-workshop-day3
7 technical-dns-workshop-day3
 
Namespaces for Local Networks
Namespaces for Local NetworksNamespaces for Local Networks
Namespaces for Local Networks
 
8 technical-dns-workshop-day4
8 technical-dns-workshop-day48 technical-dns-workshop-day4
8 technical-dns-workshop-day4
 
Coredns nodecache - A highly-available Node-cache DNS server
Coredns nodecache - A highly-available Node-cache DNS serverCoredns nodecache - A highly-available Node-cache DNS server
Coredns nodecache - A highly-available Node-cache DNS server
 
How to send DNS over anything encrypted
How to send DNS over anything encryptedHow to send DNS over anything encrypted
How to send DNS over anything encrypted
 
DNS High-Availability Tools - Open-Source Load Balancing Solutions
DNS High-Availability Tools - Open-Source Load Balancing SolutionsDNS High-Availability Tools - Open-Source Load Balancing Solutions
DNS High-Availability Tools - Open-Source Load Balancing Solutions
 
6 technical-dns-workshop-day3
6 technical-dns-workshop-day36 technical-dns-workshop-day3
6 technical-dns-workshop-day3
 
DNSSEC - WHAT IS IT ? INSTALL AND CONFIGURE IN CHROOT JAIL
DNSSEC - WHAT IS IT ? INSTALL AND CONFIGURE IN CHROOT JAILDNSSEC - WHAT IS IT ? INSTALL AND CONFIGURE IN CHROOT JAIL
DNSSEC - WHAT IS IT ? INSTALL AND CONFIGURE IN CHROOT JAIL
 
What is new in BIND 9.11?
What is new in BIND 9.11?What is new in BIND 9.11?
What is new in BIND 9.11?
 
4 technical-dns-workshop-day2
4 technical-dns-workshop-day24 technical-dns-workshop-day2
4 technical-dns-workshop-day2
 
Encrypted DNS - DNS over TLS / DNS over HTTPS
Encrypted DNS - DNS over TLS / DNS over HTTPSEncrypted DNS - DNS over TLS / DNS over HTTPS
Encrypted DNS - DNS over TLS / DNS over HTTPS
 
Paris Redis Meetup Introduction
Paris Redis Meetup IntroductionParis Redis Meetup Introduction
Paris Redis Meetup Introduction
 
Trevor McDonald - Nagios XI Under The Hood
Trevor McDonald  - Nagios XI Under The HoodTrevor McDonald  - Nagios XI Under The Hood
Trevor McDonald - Nagios XI Under The Hood
 
Keeping DNS server up-and-running with “runit
Keeping DNS server up-and-running with “runitKeeping DNS server up-and-running with “runit
Keeping DNS server up-and-running with “runit
 
Move Over, Rsync
Move Over, RsyncMove Over, Rsync
Move Over, Rsync
 
The DNSSEC KSK of the root rolls
The DNSSEC KSK of the root rollsThe DNSSEC KSK of the root rolls
The DNSSEC KSK of the root rolls
 

Similar to Workshop Requirements and Designate Installation

Swarm: Native Docker Clustering
Swarm: Native Docker ClusteringSwarm: Native Docker Clustering
Swarm: Native Docker ClusteringRoyee Tager
 
DockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaDockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaŁukasz Piątkowski
 
PyTorch crash course
PyTorch crash coursePyTorch crash course
PyTorch crash courseNader Karimi
 
Linux System Administration Crash Course
Linux System Administration Crash CourseLinux System Administration Crash Course
Linux System Administration Crash CourseJason Cannon
 
Introduction of unit test on android kernel
Introduction of unit test on android kernelIntroduction of unit test on android kernel
Introduction of unit test on android kernelJohnson Chou
 
Deploying MongoDB sharded clusters easily with Terraform and Ansible
Deploying MongoDB sharded clusters easily with Terraform and AnsibleDeploying MongoDB sharded clusters easily with Terraform and Ansible
Deploying MongoDB sharded clusters easily with Terraform and AnsibleAll Things Open
 
Cinder Project On-Boarding - OpenInfra Summit Denver 2019
Cinder Project On-Boarding - OpenInfra Summit Denver 2019Cinder Project On-Boarding - OpenInfra Summit Denver 2019
Cinder Project On-Boarding - OpenInfra Summit Denver 2019Jay Bryant
 
Improving Scalability of Xen: The 3,000 Domains Experiment
Improving Scalability of Xen: The 3,000 Domains ExperimentImproving Scalability of Xen: The 3,000 Domains Experiment
Improving Scalability of Xen: The 3,000 Domains ExperimentThe Linux Foundation
 
A3Sec Advanced Deployment System
A3Sec Advanced Deployment SystemA3Sec Advanced Deployment System
A3Sec Advanced Deployment Systema3sec
 
Tomáš Čorej: Configuration management & CFEngine3
Tomáš Čorej: Configuration management & CFEngine3Tomáš Čorej: Configuration management & CFEngine3
Tomáš Čorej: Configuration management & CFEngine3Jano Suchal
 
OpenNebulaConf 2013 - Hands-on Tutorial: 2. Installing and Basic Usage
OpenNebulaConf 2013 - Hands-on Tutorial: 2. Installing and Basic UsageOpenNebulaConf 2013 - Hands-on Tutorial: 2. Installing and Basic Usage
OpenNebulaConf 2013 - Hands-on Tutorial: 2. Installing and Basic UsageOpenNebula Project
 
Linux tech talk
Linux tech talkLinux tech talk
Linux tech talkPrince Raj
 
OpenStack Cinder On-Boarding Education - Boston Summit - 2017
OpenStack Cinder On-Boarding Education - Boston Summit - 2017OpenStack Cinder On-Boarding Education - Boston Summit - 2017
OpenStack Cinder On-Boarding Education - Boston Summit - 2017Jay Bryant
 
BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64 BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64 Linaro
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers WorkshopJody Garnett
 
OpenStack Cinder On-Boarding Room - Vancouver Summit 2018
OpenStack Cinder On-Boarding Room - Vancouver Summit 2018OpenStack Cinder On-Boarding Room - Vancouver Summit 2018
OpenStack Cinder On-Boarding Room - Vancouver Summit 2018Jay Bryant
 
1 session installation
1 session installation1 session installation
1 session installationRahul Hada
 
Infrastructure = Code
Infrastructure = CodeInfrastructure = Code
Infrastructure = CodeGeorg Sorst
 
Troubleshooting .net core on linux
Troubleshooting .net core on linuxTroubleshooting .net core on linux
Troubleshooting .net core on linuxPavel Klimiankou
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAsFromDual GmbH
 

Similar to Workshop Requirements and Designate Installation (20)

Swarm: Native Docker Clustering
Swarm: Native Docker ClusteringSwarm: Native Docker Clustering
Swarm: Native Docker Clustering
 
DockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing AureaDockerCon EU '17 - Dockerizing Aurea
DockerCon EU '17 - Dockerizing Aurea
 
PyTorch crash course
PyTorch crash coursePyTorch crash course
PyTorch crash course
 
Linux System Administration Crash Course
Linux System Administration Crash CourseLinux System Administration Crash Course
Linux System Administration Crash Course
 
Introduction of unit test on android kernel
Introduction of unit test on android kernelIntroduction of unit test on android kernel
Introduction of unit test on android kernel
 
Deploying MongoDB sharded clusters easily with Terraform and Ansible
Deploying MongoDB sharded clusters easily with Terraform and AnsibleDeploying MongoDB sharded clusters easily with Terraform and Ansible
Deploying MongoDB sharded clusters easily with Terraform and Ansible
 
Cinder Project On-Boarding - OpenInfra Summit Denver 2019
Cinder Project On-Boarding - OpenInfra Summit Denver 2019Cinder Project On-Boarding - OpenInfra Summit Denver 2019
Cinder Project On-Boarding - OpenInfra Summit Denver 2019
 
Improving Scalability of Xen: The 3,000 Domains Experiment
Improving Scalability of Xen: The 3,000 Domains ExperimentImproving Scalability of Xen: The 3,000 Domains Experiment
Improving Scalability of Xen: The 3,000 Domains Experiment
 
A3Sec Advanced Deployment System
A3Sec Advanced Deployment SystemA3Sec Advanced Deployment System
A3Sec Advanced Deployment System
 
Tomáš Čorej: Configuration management & CFEngine3
Tomáš Čorej: Configuration management & CFEngine3Tomáš Čorej: Configuration management & CFEngine3
Tomáš Čorej: Configuration management & CFEngine3
 
OpenNebulaConf 2013 - Hands-on Tutorial: 2. Installing and Basic Usage
OpenNebulaConf 2013 - Hands-on Tutorial: 2. Installing and Basic UsageOpenNebulaConf 2013 - Hands-on Tutorial: 2. Installing and Basic Usage
OpenNebulaConf 2013 - Hands-on Tutorial: 2. Installing and Basic Usage
 
Linux tech talk
Linux tech talkLinux tech talk
Linux tech talk
 
OpenStack Cinder On-Boarding Education - Boston Summit - 2017
OpenStack Cinder On-Boarding Education - Boston Summit - 2017OpenStack Cinder On-Boarding Education - Boston Summit - 2017
OpenStack Cinder On-Boarding Education - Boston Summit - 2017
 
BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64 BUD17-310: Introducing LLDB for linux on Arm and AArch64
BUD17-310: Introducing LLDB for linux on Arm and AArch64
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers Workshop
 
OpenStack Cinder On-Boarding Room - Vancouver Summit 2018
OpenStack Cinder On-Boarding Room - Vancouver Summit 2018OpenStack Cinder On-Boarding Room - Vancouver Summit 2018
OpenStack Cinder On-Boarding Room - Vancouver Summit 2018
 
1 session installation
1 session installation1 session installation
1 session installation
 
Infrastructure = Code
Infrastructure = CodeInfrastructure = Code
Infrastructure = Code
 
Troubleshooting .net core on linux
Troubleshooting .net core on linuxTroubleshooting .net core on linux
Troubleshooting .net core on linux
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAs
 

Recently uploaded

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 

Recently uploaded (20)

Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 

Workshop Requirements and Designate Installation

  • 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
  • 3. Rich Megginson Principal Software Engineer, Red Hat rmeggins@redhat.com irc: richm (Freenode)
  • 4. Emmanuel Ankutse, Developer irc: eankutse Betsy Luzader, Developer irc: bluzader Vinod Mangalpally, Developer irc: vinod Joe McBride, Development Manager irc: jmcbride
  • 5. Ron Rickard Sr. Cloud Engineer, eBay Inc. rrickard@ebaysf.com irc.freenode.net: rjrjr
  • 6.
  • 7. Are you ready? ● Installed: ○ VirtualBox and Vagrant - Both included on USB drive ● Copy “DesignateInstall” from USB drive ● cd DesignateInstall ● vagrant up ● vagrant ssh
  • 8. Agenda ● Install ● Operations ● Nova + Neutron ● How to contribute
  • 10. Install Overview - Configure PowerDNS backend - Install/Configure Designate Services - Install/Configure Designate Client - Verify install
  • 11. What we are installing Database Central Backend PowerDNS Nova / Neutron Keystone API AMQP User Sink
  • 12. Follow along at... - On the vm at: /home/vagrant/install.txt - or online at: https://wiki.openstack. org/wiki/Designate/Atlanta/Worksh op_1
  • 15. Using Designate Pre-setup in Keystone: Tenant User admin admin tenantA user1 user2 tenantB user3
  • 16. 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
  • 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
  • 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
  • 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
  • 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
  • 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.>
  • 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.>
  • 25. What we are configuring Database Central Backend PowerDNS Nova / Neutron Keystone API AMQP User Sink
  • 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
  • 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
  • 28. Neutron Configuration Changes ● Enable notifications for Designate in neutron.conf: [DEFAULT] notification_driver = neutron.openstack.common.notifier. rpc_notifier notification_topics = monitor
  • 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'
  • 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 &
  • 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.
  • 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.
  • 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!)
  • 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)
  • 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
  • 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!
  • 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.
  • 40. Questions? Slides at http://goo.gl/u5G6rh