Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
..
Failed to load latest commit information.
.gitignore
README.md
allinone.rb
base.rb
ceilometer-all.rb
ceilometer-api.rb
ceilometer-central-agent.rb
ceilometer-collector.rb
ceilometer-compute.rb
ceilometer-setup.rb
ceph-mon.rb
ceph-osd.rb
ceph-radosgw.rb
cinder-all.rb
cinder-api.rb
cinder-scheduler.rb
cinder-setup.rb
cinder-volume.rb
collectd-client.rb
collectd-server.rb
glance-api.rb
glance-registry.rb
glance-setup.rb
glance.rb
graphite.rb
ha-controller1.rb
ha-controller2.rb
ha-swift-controller1.rb
ha-swift-controller2.rb
haproxy.rb
heat-all.rb
heat-api-cfn.rb
heat-api-cloudwatch.rb
heat-api.rb
heat-engine.rb
heat-setup.rb
horizon-server.rb
keystone-api.rb
keystone-setup.rb
keystone.rb
memcached.rb
mysql-master.rb
nova-api-ec2.rb
nova-api-metadata.rb
nova-api-os-compute.rb
nova-api.rb
nova-cert.rb
nova-conductor.rb
nova-controller.rb
nova-misc-services.rb
nova-network-compute.rb
nova-network-controller.rb
nova-network.rb
nova-scheduler.rb
nova-setup.rb
nova-vncproxy.rb
nova-volume.rb
openstack-ha.rb
openstack-logging.rb
quantum-network-manager.rb
quantum-setup.rb
rabbitmq-server.rb
rsyslog-client.rb
rsyslog-server.rb
single-compute-usage.rb
single-compute.rb
single-controller-usage.rb
single-controller.rb
single-network-node.rb
swift-account-server.rb
swift-all-in-one.rb
swift-container-server.rb
swift-management-server.rb
swift-object-server.rb
swift-proxy-server.rb
swift-setup.rb

README.md

Create roles here, in either the Role Ruby DSL (.rb) or JSON (.json) files. To install roles on the server, use knife.

For example, create roles/base_example.rb:

name "base_example"
description "Example base role applied to all nodes."
# List of recipes and roles to apply. Requires Chef 0.8, earlier versions use 'recipes()'.
#run_list()
# Attributes applied if the node doesn't have it set already.
#default_attributes()
# Attributes applied no matter what the node has set already.
#override_attributes()

Then upload it to the Chef Server:

knife role from file roles/base_example.rb

Role Descriptions

allinone

Description: This will create an all-in-one (all services on one box) Openstack environment.

run_list

role[single-controller]
role[single-compute]

base

Description: "Base role for a server" TODO: Needs a better description

run_list

recipe[rcb::packages]
recipe[openssh]
recipe[ntp]

default_attributes

"ntp" => {
  "servers" => ["0.pool.ntp.org", "1.pool.ntp.org", "2.pool.ntp.org"]
}

Dependencies

glance-api

Description: "Glance API server"

run_list

role[base]
recipe[glance::api]

Dependencies

glance-registry

Description: "Glance Registry server"

run_list(

role[base]
recipe[glance::registry]

Dependencies

glance

Description: "Glance server"

run_list

role[base]
recipe[glance]

Dependencies

_ha-controller1

Description: "Primary Nova Controller (HA)"

run_list

role[base]
role[mysql-master]
role[rabbitmq-server]
role[keystone-setup]
role[keystone-api]
role[glance-setup]
role[glance-registry]
role[nova-setup]
role[nova-network-controller]
role[nova-scheduler]
role[nova-conductor]
role[nova-api-ec2]
role[nova-api-os-compute]
role[cinder-setup]
role[cinder-api]
role[cinder-scheduler]
role[nova-cert]
role[nova-vncproxy]
role[horizon-server]
role[openstack-ha]

_ha-controller2

Description: "Additional Nova Controller (HA)"

run_list

role[base]
role[mysql-master]
role[rabbitmq-server]
role[keystone-api]
role[glance-registry]
role[glance-api]
role[nova-scheduler]
role[nova-conductor]
role[nova-api-ec2]
role[nova-api-os-compute]
role[cinder-api]
role[cinder-scheduler]
role[nova-cert]
role[nova-vncproxy]
role[horizon-server]
role[openstack-ha]

horizon-server

Description: "Horizon (OpenStack Dashboard) Server"

run_list

role[base]
recipe[horizon::server]

jenkins-allinone

Description: this inherits from role[allinone], sets default attributes required by our jenkins jobs.

run_list

role[allinone]

default_attributes

"mysql" => {
  "allow_remote_root" => true
},
"glance" => {
  "image_upload" => true,
  "images" => ["tty"]
},
"package_component" => "folsom",
"public" => {
  "bridge_dev" => "eth0.100"
},
"private" => {
  "bridge_dev" => "eth0.101"
},
"virt_type" => "qemu"

jenkins-compute

Description: This inherits from role[single-compute], and sets default attributes required by our jenkins jobs.

run_list

role[single-compute]

default_attributes

"mysql" => {
  "allow_remote_root" => true
},
"package_component" => "folsom",
"public" => {
  "bridge_dev" => "eth0.100"
},
"private" => {
  "bridge_dev" => "eth0.101"
},
"virt_type" => "qemu"

jenkins-controller

Description: This inherits from role[single-controller], and sets default attributes required by our jenkins jobs.

run_list

role[single-controller]

default_attributes

"mysql" => {
  "allow_remote_root" => true,
  "root_network_acl" => "%"
},
"glance" => {
  "image_upload" => true,
  "images" => ["tty"]
},
"package_component" => "folsom",
"public" => {
  "bridge_dev" => "eth0.100"
},
"private" => {
  "bridge_dev" => "eth0.101"
},
"virt_type" => "qemu"

keystone

Description: "Installs and Configures a Keystone Server" TODO: Rename to keystone-server

run_list

role[base]
recipe[keystone::server]

dependencies

Expects that a node with role[mysql-master] exists

mysql-master

Description: "MySQL Server (non-ha)"

run_list

role[base]
recipe[mysql::server]

nova-api-ec2

Description: "Installs and Configures the OpenStack EC2 compatability API."

run_list

role[base]
recipe[nova::api-ec2]

TODO: Need to make sure this list is correct

nova-api-os-compute

Description: "Installs and Configures the OpenStack API."

run_list

role[base]
recipe[nova::api-os-compute]

TODO: Need to make sure this list is correct

nova-api

Description: "Installs and Configures both OpenStack APIs (OS and EC2)."

run_list

role[base]
recipe[nova::api-ec2]
recipe[nova::api-os-compute]

TODO: Need to make sure this list is correct

nova-misc-services

TODO: Needs to be filled out

nova-scheduler

Description: "Installs the Nova Scheduler Service."

run_list

role[base]
recipe[nova::scheduler]

nova-vncproxy

Description: "Installs the Nova VNCProxy Service."

run_list

role[base]
recipe[nova::vncproxy]

nova-volume

Description: "Installs the Nova Volume Service."

run_list

role[base]
recipe[nova::volume]

rabbitmq-server

Description: "Installs a RabbitMQ Server."

run_list

role[base]
recipe[erlang::default]
recipe[rabbitmq::default]

nova-controller

Description "Nova core functions"

run_list

role[base] role[nova-setup] role[nova-scheduler] role[nova-api-ec2] role[nova-api-os-compute] role[nova-volume] role[nova-vncproxy] )

single-compute

Description: "Installs the Nova Compute Service."

run_list

role[base]
recipe[nova::compute]

single-controller

Description: "Installs and configures a (non-HA) Nova Controller."

run_list

role[base]
role[mysql-master]
role[rabbitmq-server]
role[keystone]
role[glance-registry]
role[glance-api]
role[nova-controller]
role[nova-scheduler]
role[nova-api-ec2]
role[nova-api-os-compute]
role[nova-volume]
role[nova-vncproxy]
role[horizon-server]

swift-account-server

TODO: Needs to be filled out

swift-all-in-one

TODO: Needs to be filled out

swift-container-server

TODO: Needs to be filled out

swift-object-server

TODO: Needs to be filled out

swift-proxy-server

TODO: Needs to be filled out

collectd-server

Description "Collectd Server"

run_list

role[base] recipe[collectd-graphite::collectd-server] )

collectd-client

Description "Collectd Client"

run_list

role[base] recipe[collectd-graphite::collectd-client] )

graphite

Description "graphite and carbon/whisper"

run_list

role[base] recipe[graphite::graphite] recipe[graphite::carbon] )