Bare Metal to OpenStack with Razor and Chef

Post on 10-May-2015

5.052 views 2 download

Tags:

description

Slides from the OpenStack Spring 2013 Summit workshop presented by Egle Sigler (@eglute) and Matt Ray (@mattray) from Rackspace and Opscode respectively. Please refer to http://anystacker.com/ for additional content.

Transcript of Bare Metal to OpenStack with Razor and Chef

Bare Metal to OpenStack with Razor and ChefEgle Sigler RackspaceMatt Ray Opscode

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Get Razor Appliance

USB keys (thanks to eNovance Suse and Piston)

Wireless network razor5 and razor24 (thank you Rackers)

Start downloadingcopying

http192168138080examplesrazortar

Setting up Razor Appliance in Virtual Box

Must have extension pack installed Get it here httpswwwvirtualboxorgwikiDownloads

Verify extension pack is installed VBoxManage list extpacks

FileImport Appliance

Default options for everything

Setting up Razor Appliance in VMware Fusion

FileImport select ovf file ignore warnings

FileImport Appliance

Set up two nics for the VM second one internal

Make sure the DHCP for internal nic is turned off under VMware FusionPreferencesNetwork

Fusion Network 1

Fusion Network 2

Fusion Network 2 Preferences

Razor ApplianceBuilt on Ubuntu Server 1204 for this tutorial

Must have two nics one for external one for internal traffic

Comes with

Razor

TFTP service

DHCP service

MongoDB

Chef Server

Rackspace Private Cloud Cookbooks

MicroKernel and Ubuntu Server ISO

Logging InUser name anystacker

Password razor

Login and switch to root

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

About Razor

Provisioning solution for hardware

Initially developed by EMC and Puppet

Open sourced as a Puppet Labs project

Install using Puppet Chef or manual

About Razor

Auto-Discovered Real-Time Inventory Data

Dynamic Image Selection

Model-Based Provisioning

APIs and Plug-in Architecture

Metal-to-Cloud Application Lifecycle Management

Razor State of Things

Razor State of Things

Razor is awesome

Still not a 1 release

MongoDB may cause concurrency issues

Policy limit counts may not be enforced

Some other issues

Bright and Shiny Future

v10 release focus on stability and scalability

Beta version in Q3

support concurrency

scale well

easy to install upgrade and test

Bright and Shiny Future

After v10

Windows support

maybe AIX and Solaris support

Connecting to Razor VM

VirtualBox

ssh -p 2223 localhost

VMware Fusion

get IP and ssh to it

Hands On Razor

User name anystacker

Password razor

Switch to root

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Get Razor Appliance

USB keys (thanks to eNovance Suse and Piston)

Wireless network razor5 and razor24 (thank you Rackers)

Start downloadingcopying

http192168138080examplesrazortar

Setting up Razor Appliance in Virtual Box

Must have extension pack installed Get it here httpswwwvirtualboxorgwikiDownloads

Verify extension pack is installed VBoxManage list extpacks

FileImport Appliance

Default options for everything

Setting up Razor Appliance in VMware Fusion

FileImport select ovf file ignore warnings

FileImport Appliance

Set up two nics for the VM second one internal

Make sure the DHCP for internal nic is turned off under VMware FusionPreferencesNetwork

Fusion Network 1

Fusion Network 2

Fusion Network 2 Preferences

Razor ApplianceBuilt on Ubuntu Server 1204 for this tutorial

Must have two nics one for external one for internal traffic

Comes with

Razor

TFTP service

DHCP service

MongoDB

Chef Server

Rackspace Private Cloud Cookbooks

MicroKernel and Ubuntu Server ISO

Logging InUser name anystacker

Password razor

Login and switch to root

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

About Razor

Provisioning solution for hardware

Initially developed by EMC and Puppet

Open sourced as a Puppet Labs project

Install using Puppet Chef or manual

About Razor

Auto-Discovered Real-Time Inventory Data

Dynamic Image Selection

Model-Based Provisioning

APIs and Plug-in Architecture

Metal-to-Cloud Application Lifecycle Management

Razor State of Things

Razor State of Things

Razor is awesome

Still not a 1 release

MongoDB may cause concurrency issues

Policy limit counts may not be enforced

Some other issues

Bright and Shiny Future

v10 release focus on stability and scalability

Beta version in Q3

support concurrency

scale well

easy to install upgrade and test

Bright and Shiny Future

After v10

Windows support

maybe AIX and Solaris support

Connecting to Razor VM

VirtualBox

ssh -p 2223 localhost

VMware Fusion

get IP and ssh to it

Hands On Razor

User name anystacker

Password razor

Switch to root

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Get Razor Appliance

USB keys (thanks to eNovance Suse and Piston)

Wireless network razor5 and razor24 (thank you Rackers)

Start downloadingcopying

http192168138080examplesrazortar

Setting up Razor Appliance in Virtual Box

Must have extension pack installed Get it here httpswwwvirtualboxorgwikiDownloads

Verify extension pack is installed VBoxManage list extpacks

FileImport Appliance

Default options for everything

Setting up Razor Appliance in VMware Fusion

FileImport select ovf file ignore warnings

FileImport Appliance

Set up two nics for the VM second one internal

Make sure the DHCP for internal nic is turned off under VMware FusionPreferencesNetwork

Fusion Network 1

Fusion Network 2

Fusion Network 2 Preferences

Razor ApplianceBuilt on Ubuntu Server 1204 for this tutorial

Must have two nics one for external one for internal traffic

Comes with

Razor

TFTP service

DHCP service

MongoDB

Chef Server

Rackspace Private Cloud Cookbooks

MicroKernel and Ubuntu Server ISO

Logging InUser name anystacker

Password razor

Login and switch to root

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

About Razor

Provisioning solution for hardware

Initially developed by EMC and Puppet

Open sourced as a Puppet Labs project

Install using Puppet Chef or manual

About Razor

Auto-Discovered Real-Time Inventory Data

Dynamic Image Selection

Model-Based Provisioning

APIs and Plug-in Architecture

Metal-to-Cloud Application Lifecycle Management

Razor State of Things

Razor State of Things

Razor is awesome

Still not a 1 release

MongoDB may cause concurrency issues

Policy limit counts may not be enforced

Some other issues

Bright and Shiny Future

v10 release focus on stability and scalability

Beta version in Q3

support concurrency

scale well

easy to install upgrade and test

Bright and Shiny Future

After v10

Windows support

maybe AIX and Solaris support

Connecting to Razor VM

VirtualBox

ssh -p 2223 localhost

VMware Fusion

get IP and ssh to it

Hands On Razor

User name anystacker

Password razor

Switch to root

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Setting up Razor Appliance in Virtual Box

Must have extension pack installed Get it here httpswwwvirtualboxorgwikiDownloads

Verify extension pack is installed VBoxManage list extpacks

FileImport Appliance

Default options for everything

Setting up Razor Appliance in VMware Fusion

FileImport select ovf file ignore warnings

FileImport Appliance

Set up two nics for the VM second one internal

Make sure the DHCP for internal nic is turned off under VMware FusionPreferencesNetwork

Fusion Network 1

Fusion Network 2

Fusion Network 2 Preferences

Razor ApplianceBuilt on Ubuntu Server 1204 for this tutorial

Must have two nics one for external one for internal traffic

Comes with

Razor

TFTP service

DHCP service

MongoDB

Chef Server

Rackspace Private Cloud Cookbooks

MicroKernel and Ubuntu Server ISO

Logging InUser name anystacker

Password razor

Login and switch to root

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

About Razor

Provisioning solution for hardware

Initially developed by EMC and Puppet

Open sourced as a Puppet Labs project

Install using Puppet Chef or manual

About Razor

Auto-Discovered Real-Time Inventory Data

Dynamic Image Selection

Model-Based Provisioning

APIs and Plug-in Architecture

Metal-to-Cloud Application Lifecycle Management

Razor State of Things

Razor State of Things

Razor is awesome

Still not a 1 release

MongoDB may cause concurrency issues

Policy limit counts may not be enforced

Some other issues

Bright and Shiny Future

v10 release focus on stability and scalability

Beta version in Q3

support concurrency

scale well

easy to install upgrade and test

Bright and Shiny Future

After v10

Windows support

maybe AIX and Solaris support

Connecting to Razor VM

VirtualBox

ssh -p 2223 localhost

VMware Fusion

get IP and ssh to it

Hands On Razor

User name anystacker

Password razor

Switch to root

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Setting up Razor Appliance in VMware Fusion

FileImport select ovf file ignore warnings

FileImport Appliance

Set up two nics for the VM second one internal

Make sure the DHCP for internal nic is turned off under VMware FusionPreferencesNetwork

Fusion Network 1

Fusion Network 2

Fusion Network 2 Preferences

Razor ApplianceBuilt on Ubuntu Server 1204 for this tutorial

Must have two nics one for external one for internal traffic

Comes with

Razor

TFTP service

DHCP service

MongoDB

Chef Server

Rackspace Private Cloud Cookbooks

MicroKernel and Ubuntu Server ISO

Logging InUser name anystacker

Password razor

Login and switch to root

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

About Razor

Provisioning solution for hardware

Initially developed by EMC and Puppet

Open sourced as a Puppet Labs project

Install using Puppet Chef or manual

About Razor

Auto-Discovered Real-Time Inventory Data

Dynamic Image Selection

Model-Based Provisioning

APIs and Plug-in Architecture

Metal-to-Cloud Application Lifecycle Management

Razor State of Things

Razor State of Things

Razor is awesome

Still not a 1 release

MongoDB may cause concurrency issues

Policy limit counts may not be enforced

Some other issues

Bright and Shiny Future

v10 release focus on stability and scalability

Beta version in Q3

support concurrency

scale well

easy to install upgrade and test

Bright and Shiny Future

After v10

Windows support

maybe AIX and Solaris support

Connecting to Razor VM

VirtualBox

ssh -p 2223 localhost

VMware Fusion

get IP and ssh to it

Hands On Razor

User name anystacker

Password razor

Switch to root

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Fusion Network 1

Fusion Network 2

Fusion Network 2 Preferences

Razor ApplianceBuilt on Ubuntu Server 1204 for this tutorial

Must have two nics one for external one for internal traffic

Comes with

Razor

TFTP service

DHCP service

MongoDB

Chef Server

Rackspace Private Cloud Cookbooks

MicroKernel and Ubuntu Server ISO

Logging InUser name anystacker

Password razor

Login and switch to root

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

About Razor

Provisioning solution for hardware

Initially developed by EMC and Puppet

Open sourced as a Puppet Labs project

Install using Puppet Chef or manual

About Razor

Auto-Discovered Real-Time Inventory Data

Dynamic Image Selection

Model-Based Provisioning

APIs and Plug-in Architecture

Metal-to-Cloud Application Lifecycle Management

Razor State of Things

Razor State of Things

Razor is awesome

Still not a 1 release

MongoDB may cause concurrency issues

Policy limit counts may not be enforced

Some other issues

Bright and Shiny Future

v10 release focus on stability and scalability

Beta version in Q3

support concurrency

scale well

easy to install upgrade and test

Bright and Shiny Future

After v10

Windows support

maybe AIX and Solaris support

Connecting to Razor VM

VirtualBox

ssh -p 2223 localhost

VMware Fusion

get IP and ssh to it

Hands On Razor

User name anystacker

Password razor

Switch to root

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Fusion Network 2

Fusion Network 2 Preferences

Razor ApplianceBuilt on Ubuntu Server 1204 for this tutorial

Must have two nics one for external one for internal traffic

Comes with

Razor

TFTP service

DHCP service

MongoDB

Chef Server

Rackspace Private Cloud Cookbooks

MicroKernel and Ubuntu Server ISO

Logging InUser name anystacker

Password razor

Login and switch to root

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

About Razor

Provisioning solution for hardware

Initially developed by EMC and Puppet

Open sourced as a Puppet Labs project

Install using Puppet Chef or manual

About Razor

Auto-Discovered Real-Time Inventory Data

Dynamic Image Selection

Model-Based Provisioning

APIs and Plug-in Architecture

Metal-to-Cloud Application Lifecycle Management

Razor State of Things

Razor State of Things

Razor is awesome

Still not a 1 release

MongoDB may cause concurrency issues

Policy limit counts may not be enforced

Some other issues

Bright and Shiny Future

v10 release focus on stability and scalability

Beta version in Q3

support concurrency

scale well

easy to install upgrade and test

Bright and Shiny Future

After v10

Windows support

maybe AIX and Solaris support

Connecting to Razor VM

VirtualBox

ssh -p 2223 localhost

VMware Fusion

get IP and ssh to it

Hands On Razor

User name anystacker

Password razor

Switch to root

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Fusion Network 2 Preferences

Razor ApplianceBuilt on Ubuntu Server 1204 for this tutorial

Must have two nics one for external one for internal traffic

Comes with

Razor

TFTP service

DHCP service

MongoDB

Chef Server

Rackspace Private Cloud Cookbooks

MicroKernel and Ubuntu Server ISO

Logging InUser name anystacker

Password razor

Login and switch to root

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

About Razor

Provisioning solution for hardware

Initially developed by EMC and Puppet

Open sourced as a Puppet Labs project

Install using Puppet Chef or manual

About Razor

Auto-Discovered Real-Time Inventory Data

Dynamic Image Selection

Model-Based Provisioning

APIs and Plug-in Architecture

Metal-to-Cloud Application Lifecycle Management

Razor State of Things

Razor State of Things

Razor is awesome

Still not a 1 release

MongoDB may cause concurrency issues

Policy limit counts may not be enforced

Some other issues

Bright and Shiny Future

v10 release focus on stability and scalability

Beta version in Q3

support concurrency

scale well

easy to install upgrade and test

Bright and Shiny Future

After v10

Windows support

maybe AIX and Solaris support

Connecting to Razor VM

VirtualBox

ssh -p 2223 localhost

VMware Fusion

get IP and ssh to it

Hands On Razor

User name anystacker

Password razor

Switch to root

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Razor ApplianceBuilt on Ubuntu Server 1204 for this tutorial

Must have two nics one for external one for internal traffic

Comes with

Razor

TFTP service

DHCP service

MongoDB

Chef Server

Rackspace Private Cloud Cookbooks

MicroKernel and Ubuntu Server ISO

Logging InUser name anystacker

Password razor

Login and switch to root

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

About Razor

Provisioning solution for hardware

Initially developed by EMC and Puppet

Open sourced as a Puppet Labs project

Install using Puppet Chef or manual

About Razor

Auto-Discovered Real-Time Inventory Data

Dynamic Image Selection

Model-Based Provisioning

APIs and Plug-in Architecture

Metal-to-Cloud Application Lifecycle Management

Razor State of Things

Razor State of Things

Razor is awesome

Still not a 1 release

MongoDB may cause concurrency issues

Policy limit counts may not be enforced

Some other issues

Bright and Shiny Future

v10 release focus on stability and scalability

Beta version in Q3

support concurrency

scale well

easy to install upgrade and test

Bright and Shiny Future

After v10

Windows support

maybe AIX and Solaris support

Connecting to Razor VM

VirtualBox

ssh -p 2223 localhost

VMware Fusion

get IP and ssh to it

Hands On Razor

User name anystacker

Password razor

Switch to root

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Logging InUser name anystacker

Password razor

Login and switch to root

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

About Razor

Provisioning solution for hardware

Initially developed by EMC and Puppet

Open sourced as a Puppet Labs project

Install using Puppet Chef or manual

About Razor

Auto-Discovered Real-Time Inventory Data

Dynamic Image Selection

Model-Based Provisioning

APIs and Plug-in Architecture

Metal-to-Cloud Application Lifecycle Management

Razor State of Things

Razor State of Things

Razor is awesome

Still not a 1 release

MongoDB may cause concurrency issues

Policy limit counts may not be enforced

Some other issues

Bright and Shiny Future

v10 release focus on stability and scalability

Beta version in Q3

support concurrency

scale well

easy to install upgrade and test

Bright and Shiny Future

After v10

Windows support

maybe AIX and Solaris support

Connecting to Razor VM

VirtualBox

ssh -p 2223 localhost

VMware Fusion

get IP and ssh to it

Hands On Razor

User name anystacker

Password razor

Switch to root

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

About Razor

Provisioning solution for hardware

Initially developed by EMC and Puppet

Open sourced as a Puppet Labs project

Install using Puppet Chef or manual

About Razor

Auto-Discovered Real-Time Inventory Data

Dynamic Image Selection

Model-Based Provisioning

APIs and Plug-in Architecture

Metal-to-Cloud Application Lifecycle Management

Razor State of Things

Razor State of Things

Razor is awesome

Still not a 1 release

MongoDB may cause concurrency issues

Policy limit counts may not be enforced

Some other issues

Bright and Shiny Future

v10 release focus on stability and scalability

Beta version in Q3

support concurrency

scale well

easy to install upgrade and test

Bright and Shiny Future

After v10

Windows support

maybe AIX and Solaris support

Connecting to Razor VM

VirtualBox

ssh -p 2223 localhost

VMware Fusion

get IP and ssh to it

Hands On Razor

User name anystacker

Password razor

Switch to root

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

About Razor

Auto-Discovered Real-Time Inventory Data

Dynamic Image Selection

Model-Based Provisioning

APIs and Plug-in Architecture

Metal-to-Cloud Application Lifecycle Management

Razor State of Things

Razor State of Things

Razor is awesome

Still not a 1 release

MongoDB may cause concurrency issues

Policy limit counts may not be enforced

Some other issues

Bright and Shiny Future

v10 release focus on stability and scalability

Beta version in Q3

support concurrency

scale well

easy to install upgrade and test

Bright and Shiny Future

After v10

Windows support

maybe AIX and Solaris support

Connecting to Razor VM

VirtualBox

ssh -p 2223 localhost

VMware Fusion

get IP and ssh to it

Hands On Razor

User name anystacker

Password razor

Switch to root

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Razor State of Things

Razor State of Things

Razor is awesome

Still not a 1 release

MongoDB may cause concurrency issues

Policy limit counts may not be enforced

Some other issues

Bright and Shiny Future

v10 release focus on stability and scalability

Beta version in Q3

support concurrency

scale well

easy to install upgrade and test

Bright and Shiny Future

After v10

Windows support

maybe AIX and Solaris support

Connecting to Razor VM

VirtualBox

ssh -p 2223 localhost

VMware Fusion

get IP and ssh to it

Hands On Razor

User name anystacker

Password razor

Switch to root

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Razor State of Things

Razor is awesome

Still not a 1 release

MongoDB may cause concurrency issues

Policy limit counts may not be enforced

Some other issues

Bright and Shiny Future

v10 release focus on stability and scalability

Beta version in Q3

support concurrency

scale well

easy to install upgrade and test

Bright and Shiny Future

After v10

Windows support

maybe AIX and Solaris support

Connecting to Razor VM

VirtualBox

ssh -p 2223 localhost

VMware Fusion

get IP and ssh to it

Hands On Razor

User name anystacker

Password razor

Switch to root

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Bright and Shiny Future

v10 release focus on stability and scalability

Beta version in Q3

support concurrency

scale well

easy to install upgrade and test

Bright and Shiny Future

After v10

Windows support

maybe AIX and Solaris support

Connecting to Razor VM

VirtualBox

ssh -p 2223 localhost

VMware Fusion

get IP and ssh to it

Hands On Razor

User name anystacker

Password razor

Switch to root

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Bright and Shiny Future

After v10

Windows support

maybe AIX and Solaris support

Connecting to Razor VM

VirtualBox

ssh -p 2223 localhost

VMware Fusion

get IP and ssh to it

Hands On Razor

User name anystacker

Password razor

Switch to root

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Connecting to Razor VM

VirtualBox

ssh -p 2223 localhost

VMware Fusion

get IP and ssh to it

Hands On Razor

User name anystacker

Password razor

Switch to root

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Hands On Razor

User name anystacker

Password razor

Switch to root

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Verify Status

Verify razor is runningrootrazor~ optrazorbinrazor_daemonrb status

If notrootrazor~ optrazorbinrazor_daemonrb start

Check networks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

ifconfigrootrazor~ ifconfig

eth1 Link encapEthernet HWaddr 000c29aaf965 inet addr17216161 Bcast1721616255 Mask2552552550inet6 addr fe8020c29fffeaaf96564 ScopeLinkUP BROADCAST RUNNING MULTICAST MTU1500 Metric1RX packets7525 errors0 dropped0 overruns0 frame0TX packets19 errors0 dropped0 overruns0 carrier0collisions0 txqueuelen1000 RX bytes677489 (6774 KB) TX bytes2362 (23 KB)

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Razor Commands

add MikroKernel

add Image

add Model

add Policy

add Broker

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

MicroKernel

Variant of Tiny Core Linux

Found here httpsgithubcompuppetlabsrazor-microkerneldownloads

Need to add it once

razor image add -t mk -p rz_mk_prod-image0930iso

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Add Image

razor image add -t os -p ubuntu-12042-server-amd64iso -n ubuntu_precise_server -v 12042

Attempting to add please wait

New image added successfully

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Added Image

UUID =gt 36Lrq9JMiRwvrw5rSruSjg Type =gt OS Install ISO Filename =gt ubuntu-12042-server-amd64iso Path =gt optrazorimageos36Lrq9JMiRwvrw5rSruSjg Status =gt Valid OS Name =gt ubuntu_precise_server OS Version =gt 12042

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Model

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg

Map image to built-in template

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

ROOTRAZOR~ RAZOR MODEL TEMPLATEMODEL TEMPLATES TEMPLATE NAME DESCRIPTION DEBIAN_WHEEZY DEBIAN WHEEZY MODEL OPENSUSE_12 OPENSUSE SUSE 12 MODEL REDHAT_6 REDHAT 6 MODEL SLES_11 SLES 11 MODEL UBUNTU_ONEIRIC UBUNTU ONEIRIC MODEL UBUNTU_PRECISE UBUNTU PRECISE MODEL UBUNTU_PRECISE_IP_POOL UBUNTU PRECISE MODEL (IP POOL) VMWARE_ESXI_5 VMWARE ESXI 5 DEPLOYMENT CENTOS_6 CENTOS 6 MODEL ORACLELINUX_6 ORACLE LINUX 6 MODEL

Current Templates

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

razor model add template -t ubuntu_precise -l install_precise_server -i 36Lrq9JMiRwvrw5rSruSjg--- Building Model (ubuntu_precise)

Please enter node hostname prefix (will append node number) (example node) default node(QUIT to cancel) gt Please enter local domain name (will be used in etchosts file) (example examplecom) default localdomain(QUIT to cancel) gt Please enter root password (gt 8 characters) (example Pssword) default test1234(QUIT to cancel) gt

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Model created Label =gt install_precise_server Template =gt linux_deploy Description =gt Ubuntu Precise Model UUID =gt 5VShcTIkmqrCXGUBM3UwLI Image UUID =gt 36Lrq9JMiRwvrw5rSruSjg

Model

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_1 --enabled truePolicy created UUID =gt 6BtPna2OuYDcFPZr7ec1XU Line Number =gt 0 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_1] Model Label =gt install_precise_server Broker Target =gt none Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

PolicyMap model to a node

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Razor Brokers

Puppet

Chef

Script

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Brokers

rootrazor~ razor broker plugin

Available Broker PluginsPlugin Description chef Opscode Chef puppet PuppetLabs PuppetMaster

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Puppet Broker

If you use Puppet use it

Puppet Master hostname

Puppet version

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Chef BrokerBootstrap install

URL for Chef Server httpshostname

Chef version

validationpem file

validation client name

Chef environment

Omnibus installer script

alternative path for chef-client binary

run list

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Script BrokerVery new not on Razor appliance

Runs scripts on the newly installed node

Soon will gain special powers

pre and post scripts

run on Razor server for full integration with tools (signing Puppet certificate etc)

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Add Broker

razor broker add -p chef -n allinone -d openstack_allinone--- Building Broker (chef)

lots of stuff

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Add Broker to Policy

razor policy add -p linux_deploy -l precise_server -m 5VShcTIkmqrCXGUBM3UwLI -t nics_2 --enabled true

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

razor policy update 28kDQSkIVWtp9DFOuQdAgK -b 4uiuMcQVoePYmKOc3QLeRE

UUID =gt 28kDQSkIVWtp9DFOuQdAgK Line Number =gt 1 Label =gt precise_server Enabled =gt true Template =gt linux_deploy Description =gt Policy for deploying a Linux-based operating system Tags =gt [nics_2] Model Label =gt install_precise_server Broker Target =gt allinone Currently Bound =gt 0 Maximum Bound =gt 0 Bound Counter =gt 0

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Boot VMCreate new VM

Make sure it has 2 nics both on private network

2 GB memory

80 GB disk

on VirtualBox set boot order

Connect to real internets otherwise chef client will not install

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

anystackercom

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

All in one OpenStack on your VM

If all goes well OpenStack should be running or your new VM

Try setting up additional policies and deploy different VMs

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Agenda

Razor Introduction and Overview

Razor demonstration

OpenStack cookbook walkthrough

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

currently Folsom release (v301)

open source Chef 11 server embedded

httpwwwrackspacecomcloudprivate

httpsgithubcomrcbops

httpsgithubcomrcbops-cookbooks

Rackspace Private Cloud

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Rackspace Private Cloud

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

githubcomrcbopschef-cookbookstreev301

roles

environments

cookbooks

Rackspace Private Cloud

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

cookbooksapache2aptawsbuild-essentialcindercollectdcollectd-graphitecollectd-pluginscorosyncdatabasedsherlangexerstackglancegraphitehaproxyhardwarehorizonkeepalivedkeystonekongmemcachedmodules

monitmonitoringmysqlmysql-openstacknovanova-networkntpopensshopensslopenstack-haosops-utilspostgresqlrabbitmqrabbitmq-openstackrsyslogrunitselinuxsosreportswiftsysctlxfsyum

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

environmentsexamplejson name example_environment description Chef-server example environment cookbook_versions json_class ChefEnvironment chef_type environment default_attributes override_attributes developer_mode false monitoring metric_provider collectd procmon_provider monit glance image_upload true images [cirros precise]

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

environmentsexamplejson nova ratelimit api enabled true volume enabled true libvirt virt_type qemu networks [ label public ipv4_cidr 1010100024 num_networks 1 network_size 255 bridge br100 bridge_dev eth0100 dns1 8888 dns2 8844 label private ipv4_cidr 17216101024 num_networks 1 network_size 255 bridge br101 bridge_dev eth0101 dns1 8888 dns2 8844 ]

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

environmentsexamplejson

mysql allow_remote_root true root_network_acl osops_networks nova 1921681024 public 1921681024 management 1921681024 package_component folsom

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

rolesallinonerbbaserbcinder-allrbcinder-apirbcinder-schedulerrbcinder-setuprbcinder-volumerbcollectd-clientrbcollectd-serverrbglance-apirbglance-registryrbglance-setuprbglancerbgraphiterbha-controller1rbha-controller2rbhaproxyrbhorizon-serverrbjenkins-allinonerbjenkins-computerbjenkins-controllerrbjenkins-glancerbjenkins-mysql-masterrbjenkins-nova-apirbkeystone-apirbkeystonerbmysql-masterrb

nova-api-ec2rbnova-api-os-computerbnova-apirbnova-certrbnova-controllerrbnova-misc-servicesrbnova-network-computerbnova-network-controllerrbnova-networkrbnova-schedulerrbnova-setuprbnova-vncproxyrbnova-volumerbopenstack-harbquantum-network-managerrbrabbitmq-serverrbrsyslog-clientrbrsyslog-serverrbsingle-computerbsingle-controllerrbswift-account-serverrbswift-all-in-onerbswift-container-serverrbswift-management-serverrbswift-object-serverrbswift-proxy-serverrbswift-setuprb

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

rolesallinonerbname allinonedescription This will create an all-in-one Openstack clusterrun_list( role[single-controller] role[single-compute])

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

expanded run listosops-utilspackages openssh ntp sosreport rsyslogdefault hardware osops-utilsdefault mysql-openstackserver erlangdefault rabbitmq-openstackserver keystoneserver keystonekeystone-api glancesetup glanceregistry glanceapi novanova-setup nova-networknova-controller novascheduler novaapi-ec2 novaapi-os-compute novavolume novanova-cert novavncproxy mysqlclient mysqlruby horizonserver nova-networknova-compute novacompute

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

rolessingle-controllername single-controllerdescription Nova Controller (non-HA)run_list( role[base] role[mysql-master] role[rabbitmq-server] role[keystone] role[glance-setup] role[glance-registry] role[glance-api] role[nova-setup] role[nova-network-controller] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-cert] role[nova-vncproxy] role[horizon-server])

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

rolesbasename basedescription Base role for a serverrun_list( recipe[osops-utilspackages] recipe[openssh] recipe[ntp] recipe[sosreport] recipe[rsyslogdefault] recipe[hardware] recipe[osops-utilsdefault])default_attributes( ntp =gt servers =gt [0poolntporg 1poolntporg 2poolntporg] )

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

rolesmysql-mastername mysql-masterdescription Installs mysql and sets up replication (if 2 nodes with role)run_list( role[base] recipe[mysql-openstackserver])

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

rolesrabbitmq-servername rabbitmq-serverdescription RabbitMQ Server (non-ha)run_list( role[base] recipe[erlangdefault] recipe[rabbitmq-openstackserver])

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

roleskeystonename keystonedescription Keystone serverrun_list( role[base] recipe[keystoneserver] role[keystone-api])

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

rolesglance-setupname glance-setupdescription sets up glance registry db and passwordsrun_list( role[base] recipe[glancesetup])

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

rolesglance-registryname glance-registrydescription Glance Registry serverrun_list( role[base] recipe[glanceregistry])

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

rolesglance-apiname glance-apidescription Glance API serverrun_list( role[base] recipe[glanceapi])

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

rolesnova-setupname nova-setupdescription Where the setup operations for nova get runrun_list( recipe[novanova-setup])

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

nova-network-controllername nova-network-controllerdescription Setup nova-networking for controller noderun_list( recipe[nova-networknova-controller])

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

rolesnova-schedulername nova-schedulerdescription Nova schedulerrun_list( role[base] recipe[novascheduler])

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

rolesnova-api-ec2name nova-api-ec2description Nova API EC2run_list( role[base] recipe[novaapi-ec2])

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

nova-api-os-computename nova-api-os-computedescription Nova API for Computerun_list( role[base] recipe[novaapi-os-compute])

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

rolesnova-volumename nova-volumedescription Nova Volume Servicerun_list( role[base] recipe[novavolume])

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

rolesnova-certname nova-certdescription Nova Certificate Servicerun_list( role[base] recipe[novanova-cert])

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

rolesnova-vncproxyname nova-vncproxydescription Nova VNC Proxyrun_list( role[base] recipe[novavncproxy])

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

roleshorizon-servername horizon-serverdescription Horizon serverrun_list( role[base] recipe[mysqlclient] recipe[mysqlruby] recipe[horizonserver])

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

rolessingle-computename single-computedescription Nova compute (with non-HA Controller)run_list( role[base] role[nova-network-compute] recipe[novacompute])

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks

Egle Sigler

eglesiglerrackspacecom

Matt Ray

mattopscodecom

Thanks