Skip to content

tjcramer/eucalyptus-cookbook

 
 

Repository files navigation

eucalyptus Cookbook

This cookbook installs and configures Eucalyptus on CentOS 6 physical and virtual machines. Source and package installations are supported.

Requirements

Chef server config

Ensure that the following config is set in /etc/chef-server/chef-server.rb: erchef['s3_url_ttl'] = 3600

Platforms

This cookbook only supports RHEL/CentOS 6 at the time being.

Bershelf

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 servers
  • yum - used for managing repositories
  • selinux - disables selinux on Eucalyptus servers

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 testing

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

eucalyptus from packages

For a single frontend configuration use a role similar to:

{
  "name": "cloud-controller",
  "description": "",
  "json_class": "Chef::Role",
  "default_attributes": {
    "eucalyptus": {
      "install-load-balancer": false
    }
  },
  "override_attributes": {
  },
  "chef_type": "role",
  "run_list": [
    "recipe[eucalyptus]",
    "recipe[eucalyptus::eutester]",
    "recipe[eucalyptus::cluster-controller]",
    "recipe[eucalyptus::walrus]",
    "recipe[eucalyptus::storage-controller]",
    "recipe[eucalyptus::cloud-controller]",
    "recipe[eucalyptus::register-components]"
  ],
  "env_run_lists": {
  }
}

For a source build use something like:

{
  "name": "cloud-controller-source",
  "description": "",
  "json_class": "Chef::Role",
  "default_attributes": {
    "eucalyptus": {
      "install-type": "source",
      "release-rpm": "http://release-repo.eucalyptus-systems.com/releases/eucalyptus/3.4/centos/6/x86_64/eucalyptus-release-internal-3.4-1.el6.noarch.rpm",
      "install-load-balancer": false
    }
  },
  "override_attributes": {
  },
  "chef_type": "role",
  "run_list": [
    "recipe[eucalyptus]",
    "recipe[eucalyptus::eutester]",
    "recipe[eucalyptus::cloud-controller]"
  ],
  "env_run_lists": {
  }
}

Contributing

TODO: (optional) If this is a public cookbook, detail the process for contributing. If this is a private cookbook, remove this section.

e.g.

  1. Fork the repository on Github
  2. Create a named feature branch (like add_component_x)
  3. Write your change
  4. Write tests for your change (if applicable)
  5. Run the tests, ensuring they all pass
  6. Submit a Pull Request using Github

License and Authors

Authors: TODO: List authors

About

Chef cookbook for deploying Eucalyptus

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%