Upload
matt-ray
View
5.052
Download
2
Tags:
Embed Size (px)
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.
Citation preview
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