eucalyptus Cookbook
This cookbook installs and configures Eucalyptus on CentOS 6 physical and virtual machines. Source and package installations are supported.
Requirements
Branches
The following table descirbes the branch to use for each Eucalyptus release:
Branch | Cookbook version | Euca version | Notes |
---|---|---|---|
master | 0.3.x | 4.1.0 | maps to latest released eucalyptus version |
euca-4.0 | 0.3.x | 4.0.2 | Stable branch for 4.0.x installs |
euca-4.1 | 0.4.x | 4.1.1 | Maint branch for 4.1.x installs |
euca-4.2 | 1.0.x | 4.2.0 | breaks the attribute API |
Environment
To deploy a distributed topology it is necessary to define an environment with at least these attributes defined:
- node['eucalyptus']['topology']
- node['eucalyptus']['network']['config-json']
"default_attributes": {
"eucalyptus": {
"topology": {
"clc-1": "10.111.5.163",
"walrus": "10.111.5.163",
"user-facing": ["10.111.5.163"],
"clusters": {
"default": {
"cc-1": "10.111.5.164",
"sc-1": "10.111.5.164",
"storage-backend": "das",
"das-device": "vg01",
"nodes": "10.111.5.162 10.111.5.166 10.111.5.165 10.111.5.157"
}
}
},
"network": {
"mode": "EDGE",
"config-json": {
"InstanceDnsDomain" : "eucalyptus.internal",
"InstanceDnsServers": ["10.111.5.163"],
"PublicIps": ["10.111.55.1-10.111.55.220"],
"Subnets": [],
"Clusters": [
{
"Name": "default",
"MacPrefix": "d0:0d",
"Subnet": {
"Name": "172.16.55.0",
"Subnet": "172.16.55.0",
"Netmask": "255.255.255.0",
"Gateway": "172.16.55.1"
},
"PrivateIps": [ "172.16.55.20-172.16.55.140"]
}]
}
}
}
}
Platforms
This cookbook only supports RHEL/CentOS 6 at the time being.
Berkshelf
A Berksfile is included to allow users to easily download the required cookbook dependencies.
- Install Berkshelf:
gem install berkshelf
- Install Deps from inside this cookbook:
berks install
Cookbooks
ntp
- sets up NTP for all Eucalyptus serversyum
- used for managing repositoriesselinux
- disables selinux on Eucalyptus servers
Chef server config
Ensure that the following config is set in /etc/chef-server/chef-server.rb
:
erchef['s3_url_ttl'] = 3600
Attributes
Attribute list can be found in attributes/default.rb
Some common attributes are:
eucalyptus installation config
Key | Type | Description | Default |
---|---|---|---|
["eucalyptus"]["install-type"] | String | Choose to install from `package` or `source` | package |
["eucalyptus"]["source-repo"] | String | Git repository to clone when building from source | https://github.com/eucalyptus/eucalyptus.git |
["eucalyptus"]["source-branch"] | String | Branch to use when building from source | maint-4.1 |
eucalyptus network config
Key | Type | Description | Default |
---|---|---|---|
["eucalyptus"]["network"]["mode"] | String | Networking mode to use | MANAGED-NOVLAN |
["eucalyptus"]["network"]["private-interface"] | String | Private interface of component | eth0 |
["eucalyptus"]["network"]["public-interface"] | String | Public interface of component | eth0 |
["eucalyptus"]["network"]["bridge-interface"] | String | Bridge interface of component. Will be created and set by playbook | br0 |
Usage
For cloud-in-a-box installs look at... Eucadev
For distributed topologies... Deployment with motherbrain
Contributing
- Fork the repository on Github
- Create a named feature branch (like
add_component_x
) - Write your change
- Write tests for your change (if applicable)
- Run the tests, ensuring they all pass
- Submit a Pull Request using Github
License and Authors
Authors:
Vic Iglesias vic.iglesias@eucalyptus.com