= Chef VPC Toolkit Chef Virtual Private Cloud Toolkit == Description 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. == Features -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. == Installation 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 == Examples Example commands: - 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 == 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. #!/bin/bash chef-vpc-toolkit -v trap "rake group:delete" INT TERM EXIT # cleanup the group on exit rake create VPN_GW=$(rake group:show | grep "VPN gateway IP" | sed -e "s|VPN gateway IP: ||") ssh root@$VPN_GW bash <<-EOF_BASH # do stuff here EOF_BASH == Author Dan Prince == License See COPYING for license information. Copyright (c) 2010, Rackspace US, Inc.