Chef VPC Toolkit
Chef Virtual Private Cloud Toolkit
The Chef VPC Toolkit is a set of Rake tasks that provide a framework to help automate the creation and configuration of “identical” VPC server groups in the cloud. The Chef VPC Toolkit provides the ability to create “toolkit projects” that can be used by team members and continuous integration systems to spin up groups of servers for development and testing. Configuration information is stored in JSON and YAML formats which can be easily parsed, edited, and version controlled.
-Supports Rackspace Cloud Servers.
-Uses Cloud Servers VPC to create secure groups of servers in the public cloud.
-Supports Centos, Fedora, RHEL, and Ubuntu.
-Creates a local Chef Server within the server group.
-Installs and configures a Chef client on each node with the Chef Server.
-Automatically configures Chef Cookbooks, Databags, Roles, and Node attributes.
Requires Ruby and Rubygems. The app was developed with Ruby 1.8.7.
The following gems are required:
rake builder (2.1.2) json (> 1.4.3)
To install the gem:
rake build gem install chef-vpc-toolkit
- Create a new server group, upload cookbooks, install chef on all the nodes, sync share data and cookbooks.
$ rake create
- List your currently running server groups.
$ rake group:list
- SSH into the current (most recently created) server group
$ rake ssh
- SSH into a server group with an ID of 3
$ rake ssh GROUP_ID=3
- Delete the server group with an ID of 3
$ rake group:delete GROUP_ID=3
- Rebuild/Re-Chef the 'db1' server in the most recently created server group
$ rake rechef SERVER_NAME=db1
- Connect to a group as a VPN client. Currently supports and requires
Network Manager Openvpn, nmcli, and nm-applet (Linux only).
$ rake vpn
- Disconnect from group as a VPN client
$ rake vpn:disconnect
- Connect to a Windows machine using rdesktop.
$ rake rdesktop SERVER_NAME=win1
Bash Automation Script
The following is an example bash script to spin up a group and run commands via SSH. Useful for CI automation in Hudson, etc.
chef-vpc-toolkit -v trap “rake group:delete” INT TERM EXIT # cleanup the group on exit
# create a server group and Chef (includes Chef Server, cookbooks, clients) rake create
# wait for Chef clients to finish running rake chef:poll_clients
# Run some scripts on the login server rake ssh bash <<-EOF_BASH echo 'It works!' EOF_BASH
Dan Prince <firstname.lastname@example.org>
See COPYING for license information. Copyright © 2010-2011, Rackspace US, Inc.