This cookbook installs and configures Eucalyptus on RHEL/CentOS 7 physical and virtual machines. Source and package installations are supported.
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 |
euca-4.3 | 1.0.x | 4.3.0 | Stable branch for 4.3.x installs |
euca-4.4 | 1.0.x | 4.4.0 | Stable branch for 4.4.x installs |
To deploy a distributed topology it is necessary to define an environment with at least these attributes defined:
"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"]
}]
}
}
}
}
This cookbook only supports RHEL/CentOS 7 at the time being.
A Berksfile is included to allow users to easily download the required cookbook dependencies.
gem install berkshelf
berks install
ntp
- sets up NTP for all Eucalyptus serversyum
- used for managing repositoriesEnsure that the following config is set in /etc/chef-server/chef-server.rb
:
erchef['s3_url_ttl'] = 3600
Attribute list can be found in attributes/default.rb
Some common attributes are:
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 |
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 |
For cloud-in-a-box installs look at... Eucadev
For distributed topologies... Deployment with motherbrain
Faststart is a Bash script, faststart/cloud-in-a-box.sh
, that invokes the Eucalyptus cookbook in order to install a single host cloud-in-a-box install. It will package up the Chef cookbooks as a berks package, then install Eucalyptus. To run the Faststart script, from the
top level eucalyptus-cookbook directory, execute:
faststart/cloud-in-a-box.sh
Once invoked the script does the following:
Inputs from the user are searched and replaced into the templates in faststart/ciab-template.json
and fastart/node-template.json
and then used as follows to run the cookbook:
chef-client -z -r cookbooks.tgz -j ciab.json
add_component_x
)Authors:
Vic Iglesias vic.iglesias@eucalyptus.com