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:
parent
1d69ea3d74
commit
9628003931
|
@ -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']
|
|
@ -7,3 +7,9 @@
|
|||
.DS_Store
|
||||
/cookbooks
|
||||
/tmp
|
||||
.chef
|
||||
.bundle
|
||||
.berkshelf
|
||||
.vagabond
|
||||
berks.json
|
||||
.kitchen
|
||||
|
|
14
Berksfile
14
Berksfile
|
@ -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'
|
||||
|
|
|
@ -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
11
Gemfile
|
@ -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"
|
||||
|
|
|
@ -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!
|
83
README.md
83
README.md
|
@ -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. |
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
|
@ -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"
|
||||
}
|
||||
)
|
|
@ -3,4 +3,4 @@ description "OpenStack Base role"
|
|||
run_list(
|
||||
"recipe[openstack-common]",
|
||||
"recipe[openstack-common::logging]"
|
||||
)
|
||||
)
|
||||
|
|
|
@ -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]"
|
||||
)
|
||||
|
|
|
@ -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]"
|
||||
)
|
||||
|
|
|
@ -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]"
|
||||
)
|
||||
|
|
|
@ -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]"
|
||||
)
|
||||
|
|
|
@ -2,6 +2,5 @@ name "os-dashboard"
|
|||
description "Horizon server"
|
||||
run_list(
|
||||
"role[os-base]",
|
||||
"recipe[openstack-dashboard::db]",
|
||||
"recipe[openstack-dashboard::server]"
|
||||
)
|
||||
|
|
|
@ -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]"
|
||||
)
|
||||
|
||||
|
|
|
@ -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]"
|
||||
)
|
||||
|
||||
|
|
|
@ -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]"
|
||||
)
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
name "os-ops-caching"
|
||||
description "Installs memcache server"
|
||||
run_list(
|
||||
"role[os-base]",
|
||||
"recipe[memcached]"
|
||||
)
|
|
@ -3,4 +3,4 @@ description "Currently MySQL Server (non-ha)"
|
|||
run_list(
|
||||
"role[os-base]",
|
||||
"recipe[openstack-ops-database::server]"
|
||||
)
|
||||
)
|
||||
|
|
|
@ -3,4 +3,4 @@ description "Currently RabbitMQ Server (non-ha)"
|
|||
run_list(
|
||||
"role[os-base]",
|
||||
"recipe[openstack-ops-messaging::server]"
|
||||
)
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue