Adds Vagabond integration testing and setup

* Adds instructions for using Vagabond to test the
Chef repository.
* Add a new testing environment file that is specific
to Vagabond
* An ops, compute controller and compute worker node
added to the vagabond environment

Change-Id: Id15201b9b870c51d337d8d07fca5e42ca8aaf385
This commit is contained in:
Jay Pipes 2013-07-01 22:23:41 -04:00
parent 1d69ea3d74
commit 9628003931
21 changed files with 775 additions and 44 deletions

View File

@ -1,21 +0,0 @@
raise "You must set the ORGNAME environment variable" if ENV['ORGNAME'].nil?
current_dir = File.dirname(__FILE__)
user = ENV['OPSCODE_USER'] || ENV['USER']
log_level :info
log_location STDOUT
node_name user
client_key "#{current_dir}/#{user}.pem"
validation_client_name "#{ENV['ORGNAME']}-validator"
validation_key "#{current_dir}/#{ENV['ORGNAME']}-validator.pem"
chef_server_url "https://api.opscode.com/organizations/#{ENV['ORGNAME']}"
cache_type 'BasicFile'
cache_options( :path => "#{current_dir}/checksums" )
cookbook_path ["#{current_dir}/../cookbooks"]
role_path ["#{current_dir}/../roles"]
# OpenStack
knife[:openstack_username] = ENV['OS_USERNAME']
knife[:openstack_password] = ENV['OS_PASSWORD']
knife[:openstack_auth_url] = ENV['OS_AUTH_URL']
knife[:openstack_tenant] = ENV['OS_TENANT']
knife[:identity_file] = ENV['OS_IDENTITY_FILE']

6
.gitignore vendored
View File

@ -7,3 +7,9 @@
.DS_Store
/cookbooks
/tmp
.chef
.bundle
.berkshelf
.vagabond
berks.json
.kitchen

View File

@ -4,12 +4,13 @@ cookbook 'apache2', '1.6.2'
cookbook 'apt', '1.9.2'
cookbook 'aws', '0.101.0'
cookbook 'build-essential', '1.4.0'
cookbook 'database', '1.3.12'
cookbook 'database', '~> 1.4.0'
cookbook 'erlang', '1.3.0'
cookbook 'memcached'
cookbook 'mysql', '3.0.0'
cookbook 'openssl', '1.0.2'
cookbook 'postgresql', '3.0.0'
cookbook 'rabbitmq', '2.0.0'
cookbook 'rabbitmq', '~> 2.1.0'
cookbook 'xfs', '1.1.0'
cookbook 'yum', '2.2.2'
@ -20,8 +21,7 @@ cookbook 'openstack-dashboard', github: 'stackforge/cookbook-openstack-dashboard
cookbook 'openstack-identity', github: 'stackforge/cookbook-openstack-identity'
cookbook 'openstack-image', github: 'stackforge/cookbook-openstack-image'
#cookbook 'openstack-metering', github: 'stackforge/cookbook-openstack-metering'
#cookbook 'openstack-network', github: 'stackforge/cookbook-openstack-network'
#cookbook 'openstack-object-storage', github: "stackforge/cookbook-openstack-object-storage"
#cookbook 'openstack-ops-database', github: 'stackforge/cookbook-openstack-ops-database'
#cookbook 'openstack-ops-messaging', github: 'stackforge/cookbook-openstack-ops-messaging'
cookbook 'openstack-network', github: 'stackforge/cookbook-openstack-network'
cookbook 'openstack-object-storage', github: "stackforge/cookbook-openstack-object-storage"
cookbook 'openstack-ops-database', github: 'stackforge/cookbook-openstack-ops-database'
cookbook 'openstack-ops-messaging', github: 'stackforge/cookbook-openstack-ops-messaging'

120
Berksfile.lock Normal file
View File

@ -0,0 +1,120 @@
{
"sources": {
"apache2": {
"locked_version": "1.6.2"
},
"apt": {
"locked_version": "1.9.2"
},
"aws": {
"locked_version": "0.101.0"
},
"build-essential": {
"locked_version": "1.4.0"
},
"database": {
"locked_version": "1.4.0"
},
"erlang": {
"locked_version": "1.3.0"
},
"memcached": {
"locked_version": "1.4.0"
},
"mysql": {
"locked_version": "3.0.0"
},
"openssl": {
"locked_version": "1.0.2"
},
"postgresql": {
"locked_version": "3.0.0"
},
"rabbitmq": {
"locked_version": "2.1.2"
},
"xfs": {
"locked_version": "1.1.0"
},
"yum": {
"locked_version": "2.2.2"
},
"openstack-block-storage": {
"locked_version": "7.0.0",
"git": "git://github.com/stackforge/cookbook-openstack-block-storage.git",
"ref": "fe9e955de111fef2c0e9f60d2d8be3a0101e79e8"
},
"openstack-common": {
"locked_version": "0.4.3",
"git": "git://github.com/stackforge/cookbook-openstack-common.git",
"ref": "eb5eed7126b6a6efbaf803e8a594d610cf661e97"
},
"openstack-compute": {
"locked_version": "7.0.0",
"git": "git://github.com/stackforge/cookbook-openstack-compute.git",
"ref": "09f7cb177734c7d9e0ba6a15bda7bdafc4214d33"
},
"openstack-dashboard": {
"locked_version": "7.0.0",
"git": "git://github.com/stackforge/cookbook-openstack-dashboard.git",
"ref": "1051d4a6f2960ca59793789039a263f763e31464"
},
"openstack-identity": {
"locked_version": "7.0.0",
"git": "git://github.com/stackforge/cookbook-openstack-identity.git",
"ref": "b881af26095cfa869a6970067c49597a0ee63586"
},
"openstack-image": {
"locked_version": "7.0.0",
"git": "git://github.com/stackforge/cookbook-openstack-image.git",
"ref": "637c04412e600b10147ff1c1853d99b75f46840e"
},
"openstack-network": {
"locked_version": "7.0.0",
"git": "git://github.com/stackforge/cookbook-openstack-network.git",
"ref": "b4bfd38efede48d4405364322a7dd84f936b21c1"
},
"openstack-object-storage": {
"locked_version": "1.0.16",
"git": "git://github.com/stackforge/cookbook-openstack-object-storage.git",
"ref": "fe10aaeeb99d555b5929bb0767688373dafd220c"
},
"openstack-ops-database": {
"locked_version": "7.0.0",
"git": "git://github.com/stackforge/cookbook-openstack-ops-database.git",
"ref": "28619c1357a826dae4a74d6ac3f14c7fdef5a740"
},
"openstack-ops-messaging": {
"locked_version": "7.0.0",
"git": "git://github.com/stackforge/cookbook-openstack-ops-messaging.git",
"ref": "d57a3c64e09cd5e5ce7bcbf0cb84c9bbf67cab9a"
},
"runit": {
"locked_version": "1.1.6"
},
"selinux": {
"locked_version": "0.5.6"
},
"sysctl": {
"locked_version": "0.3.3"
},
"python": {
"locked_version": "1.3.4"
},
"statsd": {
"locked_version": "0.0.1"
},
"git": {
"locked_version": "2.5.2"
},
"dmg": {
"locked_version": "1.1.0"
},
"windows": {
"locked_version": "1.10.0"
},
"chef_handler": {
"locked_version": "1.1.4"
}
}
}

11
Gemfile
View File

@ -1,5 +1,8 @@
source 'https://rubygems.org'
source "https://rubygems.org"
gem "chef", "~> 10.18.2"
gem "berkshelf", "~> 1.4.3"
gem "spiceweasel", "~> 2.2.0"
gem "chef", "~> 11.4.4"
gem "json", "<= 1.7.7" # chef dependency
gem "knife-block", "~> 0.0.6"
gem "spiceweasel", "~> 2.0.1"
gem "berkshelf", "~> 2.0.3"
gem "vagabond", github: "chrisroberts/vagabond", ref: "1c8691e1db2707fe010d48aa541d345057d7e6a2"

224
Gemfile.lock Normal file
View File

@ -0,0 +1,224 @@
GIT
remote: git://github.com/chrisroberts/vagabond.git
revision: 1c8691e1db2707fe010d48aa541d345057d7e6a2
ref: 1c8691e1db2707fe010d48aa541d345057d7e6a2
specs:
vagabond (0.2.9)
chef
elecksee (>= 1.0.6)
librarian-chef
serverspec (>= 0.6.3)
test-kitchen (>= 1.0.0.alpha)
thor
uuidtools
GEM
remote: https://rubygems.org/
specs:
activesupport (3.2.14)
i18n (~> 0.6, >= 0.6.4)
multi_json (~> 1.0)
addressable (2.3.5)
akami (1.2.0)
gyoku (>= 0.4.0)
nokogiri (>= 1.4.0)
archive-tar-minitar (0.5.2)
berkshelf (2.0.8)
activesupport (~> 3.2.0)
addressable (~> 2.3.4)
buff-shell_out (~> 0.1)
celluloid (>= 0.14.0)
chozo (>= 0.6.1)
faraday (>= 0.8.5)
hashie (>= 2.0.2)
minitar (~> 0.5.4)
rbzip2 (~> 0.2.0)
retryable (~> 1.3.3)
ridley (~> 1.2.1)
solve (>= 0.5.0)
thor (~> 0.18.0)
buff-extensions (0.5.0)
buff-ruby_engine (0.1.0)
buff-shell_out (0.1.0)
buff-ruby_engine (~> 0.1.0)
builder (3.2.2)
celluloid (0.14.1)
timers (>= 1.0.0)
celluloid-io (0.14.1)
celluloid (>= 0.14.1)
nio4r (>= 0.4.5)
chef (11.4.4)
erubis
highline (>= 1.6.9)
json (>= 1.4.4, <= 1.7.7)
mixlib-authentication (>= 1.3.0)
mixlib-cli (~> 1.3.0)
mixlib-config (>= 1.1.2)
mixlib-log (>= 1.3.0)
mixlib-shellout
net-ssh (~> 2.6)
net-ssh-multi (~> 1.1.0)
ohai (>= 0.6.0)
rest-client (>= 1.0.4, < 1.7.0)
yajl-ruby (~> 1.1)
chozo (0.6.1)
activesupport (>= 3.2.0)
hashie (>= 2.0.2)
multi_json (>= 1.3.0)
coderay (1.0.9)
diff-lcs (1.2.4)
elecksee (1.0.8)
mixlib-shellout
net-ssh
erubis (2.7.0)
faraday (0.8.8)
multipart-post (~> 1.2.0)
ffi (1.9.0)
gssapi (1.0.3)
ffi (>= 1.0.1)
gyoku (1.1.0)
builder (>= 2.1.2)
hashie (2.0.5)
highline (1.6.19)
httpclient (2.2.0.2)
httpi (0.9.7)
rack
i18n (0.6.4)
ipaddress (0.8.0)
json (1.7.7)
knife-block (0.0.7)
librarian (0.1.0)
highline
thor (~> 0.15)
librarian-chef (0.0.1)
archive-tar-minitar (>= 0.5.2)
chef (>= 0.10)
librarian (~> 0.1.0)
little-plugger (1.1.3)
logging (1.6.2)
little-plugger (>= 1.1.3)
method_source (0.8.2)
mime-types (1.23)
minitar (0.5.4)
mixlib-authentication (1.3.0)
mixlib-log
mixlib-cli (1.3.0)
mixlib-config (1.1.2)
mixlib-log (1.6.0)
mixlib-shellout (1.2.0)
multi_json (1.7.7)
multipart-post (1.2.0)
net-http-persistent (2.9)
net-scp (1.1.2)
net-ssh (>= 2.6.5)
net-ssh (2.6.8)
net-ssh-gateway (1.2.0)
net-ssh (>= 2.6.5)
net-ssh-multi (1.1)
net-ssh (>= 2.1.4)
net-ssh-gateway (>= 0.99.0)
nio4r (0.4.6)
nokogiri (1.5.10)
nori (1.1.5)
ohai (6.18.0)
ipaddress
mixlib-cli
mixlib-config
mixlib-log
mixlib-shellout
systemu
yajl-ruby
pry (0.9.12.2)
coderay (~> 1.0.5)
method_source (~> 0.8)
slop (~> 3.4)
rack (1.5.2)
rbzip2 (0.2.0)
rest-client (1.6.7)
mime-types (>= 1.16)
retryable (1.3.3)
ridley (1.2.5)
addressable
buff-extensions (~> 0.3)
buff-shell_out (~> 0.1)
celluloid (~> 0.14.0)
celluloid-io (~> 0.14.0)
erubis
faraday (>= 0.8.4)
hashie (>= 2.0.2)
json (>= 1.7.7)
mixlib-authentication (>= 1.3.0)
net-http-persistent (>= 2.8)
net-ssh
retryable
solve (>= 0.4.4)
varia_model (~> 0.1)
winrm (~> 1.1.0)
rspec (2.13.0)
rspec-core (~> 2.13.0)
rspec-expectations (~> 2.13.0)
rspec-mocks (~> 2.13.0)
rspec-core (2.13.1)
rspec-expectations (2.13.0)
diff-lcs (>= 1.1.3, < 2.0)
rspec-mocks (2.13.1)
rubyntlm (0.1.1)
safe_yaml (0.9.4)
savon (0.9.5)
akami (~> 1.0)
builder (>= 2.1.2)
gyoku (>= 0.4.0)
httpi (~> 0.9)
nokogiri (>= 1.4.0)
nori (~> 1.0)
wasabi (~> 1.0)
serverspec (0.7.3)
highline
net-ssh
rspec (~> 2.13.0)
slop (3.4.6)
solve (0.8.0)
spiceweasel (2.0.1)
chef
json
mixlib-cli
mixlib-config
mixlib-log
mixlib-shellout
systemu (2.5.2)
test-kitchen (1.0.0.beta.2)
celluloid
mixlib-shellout
net-scp
net-ssh
pry
safe_yaml (~> 0.9.3)
thor
thor (0.18.1)
timers (1.1.0)
uuidtools (2.1.4)
varia_model (0.1.1)
buff-extensions (~> 0.2)
hashie (>= 2.0.2)
wasabi (1.0.0)
nokogiri (>= 1.4.0)
winrm (1.1.2)
gssapi (~> 1.0.0)
httpclient (~> 2.2.0.2)
logging (~> 1.6.1)
nokogiri (~> 1.5.0)
rubyntlm (~> 0.1.1)
savon (= 0.9.5)
uuidtools (~> 2.1.2)
yajl-ruby (1.1.0)
PLATFORMS
ruby
DEPENDENCIES
berkshelf (~> 2.0.3)
chef (~> 11.4.4)
json (<= 1.7.7)
knife-block (~> 0.0.6)
spiceweasel (~> 2.0.1)
vagabond!

View File

@ -72,11 +72,94 @@ http://github.com/stackforge/cookbook-openstack-object-storage/
There is further documentation in the [OpenStack Object Storage cookbook README](http://github.com/stackforge/cookbook-openstack-object-storage/).
## Testing
We use Vagabond to do integration testing. The Vagabondfile in the root
directory of the Chef repo contains the definitions of the nodes that
are used during integration testing.
To set up Vagabond, do this:
bundle exec vagabond init
When prompted, answer "N" to not overwrite the existing Vagabondfile, and then
answer "n" for all templates you don't want to use and "y" for the rest.
When running integration tests, Vagabond starts up a set of LXC containers
to represent the actual hardware nodes used in a deployment, including the
Chef server itself. The nodes we use in integration testing are the
following:
* `server` -- A hardcoded LXC instance name that contains a Chef 11 server
that is loaded up with the Berkshelf cookbooks, the role definitions,
and environment definitions defined in this Chef repo
* `ops` -- An LXC instance that gets all the ops-related recipes and applications
installed in it, including databases, message queues, logging, etc
* `compute-worker` -- An LXC instance that acts as a compute worker
* `controller` -- An LXC instance that contains all the OpenStack control software
### Vagabond Local Chef Server
To start the local Chef 11 server LXC instance using Vagabond:
bundle exec vagabond server up
The above will automatically upload the roles and environment
definitions in this Chef repo along with all of the cookbooks
in the Berkshelf.
To re-upload all of the cookbooks in the Berkshelf, simply do:
bundle exec vagabond server upload_cookbooks
To re-upload the roles or environment files:
bundle exec vagabond server upload_roles
bundle exec vagabond server upload_environments
Remember that the above will install the **current** Berkshelf. Remember to
run:
bundle exec berks update
before you do the `vagabond server upload_cookbooks` command.
### Test Nodes
To start any of the LXC instances that represent the different ops, controller
and worker nodes in an OpenStack environment, do:
bundle exec vagabond up <NODE>
If you make changes to cookbooks and issue a `vagabond server upload_cookbooks` or
role/environment definitions, you will want to re-provision the node, which basically
ensures the node is up and runs chef-client on it:
bundle exec vagabond provision <NODE>
To destroy a node:
bundle exec vagabond destroy <NODE>
To entirely rebuild a node from scratch:
bundle exec vagabond rebuild <NODE>
When a node is up, you can SSH into that node to run tests or investigate logs, etc:
bundle exec vagabond ssh <NODE>
To see the status of all the nodes that Vagabond is managing, including the IP addresses
that the containers are bound to:
bundle exec vagabond status
# License and Author #
| | |
|:---------------------|:-----------------------------------------|
| **Author** | Matt Ray (<matt@opscode.com>) |
| **Author** | Jay Pipes (<jaypipes@gmail.com>) |
| | |
| **Copyright** | Copyright (c) 2011-2013 Opscode, Inc. |

55
Vagabondfile Normal file
View File

@ -0,0 +1,55 @@
{
:nodes => {
:ops => {
:template => "ubuntu_1204",
:ipaddress => "10.0.3.10",
:environment => "testing",
:run_list => [
"role[os-ops-database]",
"role[os-ops-messaging]",
"role[os-ops-caching]",
"recipe[openstack-ops-database::openstack-db]"
]
},
:controller => {
:template => "ubuntu_1204",
:ipaddress => "10.0.3.11",
:environment => "testing",
:run_list => [
"role[os-base]",
"role[os-identity]",
"role[os-image]",
"role[os-compute-api]",
"role[os-compute-scheduler]",
"role[os-compute-cert]",
"role[os-compute-vncproxy]",
"role[os-block-storage]",
"role[os-dashboard]"
]
},
:compute => {
:template => "ubuntu_1204",
:ipaddress => "10.0.3.12",
:environment => "testing",
:run_list => [
"role[os-base]",
"role[os-compute-worker]"
]
}
},
:clusters => {
:simple => [
"ops",
"controller",
"compute"
]
},
:local_chef_server => {
:zero => false,
:berkshelf => true,
:librarian => false,
:enabled => true,
:auto_upload => true
},
:sudo => true
}

254
environments/testing.rb Normal file
View File

@ -0,0 +1,254 @@
name "testing"
description "Environment used in testing the upstream cookbooks and reference Chef repository"
override_attributes(
"mysql" => {
"server_root_password" => "root",
"server_debian_password" => "root",
"server_repl_password" => "root",
"allow_remote_root" => true,
"root_network_acl" => "%"
},
"openstack" => {
"auth" => {
"validate_certs" => false
},
"block-storage" => {
"syslog" => {
"use" => false
},
"api" => {
"ratelimit" => "False"
},
"debug" => true,
"image_api_chef_role" => "os-image",
"identity_service_chef_role" => "os-identity",
"rabbit_server_chef_role" => "os-ops-messaging"
},
"compute" => {
"syslog" => {
"use" => false
},
"libvirt" => {
"bind_interface" => "eth0"
},
"novnc_proxy" => {
"bind_interface" => "eth0"
},
"xvpvnc_proxy" => {
"bind_interface" => "eth0"
},
"image_api_chef_role" => "os-image",
"identity_service_chef_role" => "os-identity",
"nova_setup_chef_role" => "os-compute-api",
"rabbit_server_chef_role" => "os-ops-messaging",
"ratelimit" => { # Disable ratelimiting so Tempest doesn't have issues.
"api" => {
"enabled" => false
},
"volume" => {
"enabled" => false
}
},
"network" => {
"fixed_range" => "10.0.0.0/8"
},
"networks" => [
]
},
"db" => {
"bind_interface" => "eth0",
"compute" => {
"host" => "10.0.3.10"
},
"identity" => {
"host" => "10.0.3.10"
},
"image" => {
"host" => "10.0.3.10"
},
"network" => {
"host" => "10.0.3.10"
},
"volume" => {
"host" => "10.0.3.10"
},
"dashboard" => {
"host" => "10.0.3.10"
},
"metering" => {
"host" => "10.0.3.10"
}
},
"developer_mode" => true,
"endpoints" => {
"compute-api" => {
"host" => "10.0.3.11",
"scheme" => "http",
"port" => "8774",
"path" => "/v2/%(tenant_id)s"
},
"compute-ec2-admin" => {
"host" => "10.0.3.11",
"scheme" => "http",
"port" => "8773",
"path" => "/services/Admin"
},
"compute-ec2-api" => {
"host" => "10.0.3.11",
"scheme" => "http",
"port" => "8773",
"path" => "/services/Cloud"
},
"compute-xvpvnc" => {
"host" => "10.0.3.11",
"scheme" => "http",
"port" => "6081",
"path" => "/console"
},
"compute-novnc" => {
"host" => "10.0.3.11",
"scheme" => "http",
"port" => "6080",
"path" => "/vnc_auto.html"
},
"image-api" => {
"host" => "10.0.3.11",
"scheme" => "http",
"port" => "9292",
"path" => "/v2"
},
"image-registry" => {
"host" => "10.0.3.11",
"scheme" => "http",
"port" => "9191",
"path" => "/v2"
},
"identity-api" => {
"host" => "10.0.3.11",
"scheme" => "http",
"port" => "5000",
"path" => "/v2.0"
},
"identity-admin" => {
"host" => "10.0.3.11",
"scheme" => "http",
"port" => "35357",
"path" => "/v2.0"
},
"volume-api" => {
"host" => "10.0.3.11",
"scheme" => "http",
"port" => "8776",
"path" => "/v1/%(tenant_id)s"
},
"metering-api" => {
"host" => "10.0.3.11",
"scheme" => "http",
"port" => "8777",
"path" => "/v1"
},
"network-api" => {
"host" => "10.0.3.11",
"scheme" => "http",
"port" => "9696",
"path" => "/v2"
}
},
"identity" => {
"admin_user" => "ksadmin",
"bind_interface" => "eth0",
"catalog" => {
"backend" => "templated"
},
"debug" => true,
"rabbit_server_chef_role" => "os-ops-messaging",
"roles" => [
"admin",
"keystone_admin",
"keystone_service_admin",
"member",
"netadmin",
"sysadmin"
],
"syslog" => {
"use" => false
},
"tenants" => [
"admin",
"service",
"demo"
],
"token" => {
"backend" => "memcache"
},
"users" => {
"ksadmin" => {
"password" => "ksadmin",
"default_tenant" => "admin",
"roles" => { # Each key is the role name, each value is a list of tenants
"admin" => [
"admin"
],
"keystone_admin" => [
"admin"
],
"keystone_service_admin" => [
"admin"
]
}
},
"demo" => {
"password" => "demo",
"default_tenant" => "demo",
"roles" => { # Each key is the role name, each value is a list of tenants
"sysadmin" => [
"demo"
],
"netadmin" => [
"demo"
],
"member" => [
"demo"
]
}
}
}
},
"image" => {
"api" => {
"bind_interface" => "eth0"
},
"debug" => true,
"identity_service_chef_role" => "os-identity",
"image_upload" => true,
"rabbit_server_chef_role" => "os-ops-messaging",
"registry" => {
"bind_interface" => "eth0"
},
"syslog" => {
"use" => false
},
"upload_image" => {
"cirros" => "http://hypnotoad/cirros-0.3.0-x86_64-disk.img",
},
"upload_images" => [
"cirros"
]
},
"memcached_servers" => [
"10.0.3.10:11211"
],
"mq" => {
"bind_interface" => "eth0",
"host" => "10.0.3.10",
"user" => "guest",
"vhost" => "/nova"
}
},
"queue" => {
"host" => "10.0.3.10",
"user" => "guest",
"vhost" => "/nova"
}
)

View File

@ -3,4 +3,4 @@ description "OpenStack Base role"
run_list(
"recipe[openstack-common]",
"recipe[openstack-common::logging]"
)
)

View File

@ -2,5 +2,8 @@ name "os-block-storage"
description "Configures OpenStack block storage, configured by attributes."
run_list(
"role[os-base]",
"recipe[openstack-block-storage]"
"recipe[openstack-block-storage::api]",
"recipe[openstack-block-storage::scheduler]",
"recipe[openstack-block-storage::volume]",
"recipe[openstack-block-storage::identity_registration]"
)

View File

@ -3,5 +3,6 @@ description "Roll-up role for all the Compute APIs"
run_list(
"role[os-compute-api-ec2]",
"role[os-compute-api-os-compute]",
"role[os-compute-api-metadata]"
"role[os-compute-api-metadata]",
"recipe[openstack-compute::identity_registration]"
)

View File

@ -2,5 +2,5 @@ name "os-compute-cert"
description "OpenStack Compute Cert service"
run_list(
"role[os-base]",
"recipe[openstack-compute::cert]"
"recipe[openstack-compute::nova-cert]"
)

View File

@ -2,6 +2,5 @@ name "os-compute-worker"
description "The compute node, most likely with a hypervisor."
run_list(
"role[os-base]",
"recipe[openstack-compute::worker]"
)
"recipe[openstack-compute::compute]"
)

View File

@ -2,6 +2,5 @@ name "os-dashboard"
description "Horizon server"
run_list(
"role[os-base]",
"recipe[openstack-dashboard::db]",
"recipe[openstack-dashboard::server]"
)

View File

@ -2,7 +2,6 @@ name "os-image-api"
description "Glance API service"
run_list(
"role[os-base]",
"recipe[openstack-image::db]",
"recipe[openstack-image::api]"
)

View File

@ -2,7 +2,6 @@ name "os-image-registry"
description "Glance Registry service"
run_list(
"role[os-base]",
"recipe[openstack-image::db]",
"recipe[openstack-image::registry]"
)

View File

@ -1,6 +1,7 @@
name "os-image"
description "Roll-up role for Glance."
run_list(
"recipe[openstack-image::identity_registration]",
"role[os-image-registry]",
"role[os-image-api]"
)

6
roles/os-ops-caching.rb Normal file
View File

@ -0,0 +1,6 @@
name "os-ops-caching"
description "Installs memcache server"
run_list(
"role[os-base]",
"recipe[memcached]"
)

View File

@ -3,4 +3,4 @@ description "Currently MySQL Server (non-ha)"
run_list(
"role[os-base]",
"recipe[openstack-ops-database::server]"
)
)

View File

@ -3,4 +3,4 @@ description "Currently RabbitMQ Server (non-ha)"
run_list(
"role[os-base]",
"recipe[openstack-ops-messaging::server]"
)
)