= Rudy - v0.7 BETA Not your grandparents' EC2 deployment tool. Rudy is a command-line development and deployment tool for Amazon Web Services. It helps you build and manage machines in EC2 by organizing them into groups of _environments_ and _roles_. These are called _machine_ _groups_. stage is the default environment and app is the default role. You can run multiple machines with the same role. These are called _positions_. Rudy also supports running machine groups across availability _zones_. When you put all this together, you have a unique name for every machine. The default machine is: zone env role v v v m-us-east-1b-stage-app-01 ^ ^ "machine" position All configuration is organized into the zones, environments, and roles that you specify (Rudy assumes positions are identical which is important for backups and scaling). And as you'd expect, the defaults can be changed too (in ~/.rudy/config). See Getting-Started[http://wiki.github.com/solutious/rudy/getting-started] for more info. NOTE: This is a BETA release. That means Rudy's not ready for production use! See Project-Status[http://wiki.github.com/solutious/rudy/project-status]. == Features * Create complex environments with a single command * Launch multiple instances * Assign elastic IP addresses * Create EBS volumes, attach to instances, format, and mount * Run scripts locally and remotely automatically * Organize instances into environments and roles * Powerful command-line tools * $ rudy -u root ssh * $ rudy -e testing -r database startup * Use _any Linux_ Amazon machine image (AMI) (partial Solaris support) * Complete command-line interface for EC2. See bin/rudy-ec2. == Installation Via Rubygems, one of: $ sudo gem install rudy $ sudo gem install solutious-rudy --source http://gems.github.com/ or via download: * rudy-latest.tar.gz[http://github.com/solutious/rudy/tarball/latest] * rudy-latest.zip[http://github.com/solutious/rudy/zipball/latest] NOTE: If you are not installing via RubyGems, you need to make sure the dependencies are in your LOAD_PATH ($:). Ryan Tomayko wrote a gist[http://gist.github.com/54177] about it. See Getting-Started[http://wiki.github.com/solutious/rudy/getting-started] for more info. == Pre-Requisites * Amazon AWS[http://aws.amazon.com/] Account * EC2[http://aws.amazon.com/ec2/] * SimpleDB[http://aws.amazon.com/simpledb/] * S3[http://aws.amazon.com/s3/] * OpenSSH[http://www.openssh.com/] * Ruby[http://ruby-lang.org] 1.8.x, 1.9.x, or JRuby[http://jruby.codehaus.org] 1.2 * Net::SSH[http://net-ssh.rubyforge.org/] * Net::SCP[http://net-ssh.rubyforge.org/] * amazon-ec2[http://github.com/grempe/amazon-ec2] * aws-s3[http://github.com/marcel/aws-s3] * Rye[http://github.com/delano/rye] * Drydock[http://github.com/delano/drydock] * Caesars[http://github.com/delano/caesars] == More Info * Fork at GitHub[http://github.com/solutious/rudy] * Read the Documentation[http://wiki.github.com/solutious/rudy] * Submit issues to the IssueTracker[http://github.com/solutious/rudy/issues] * Start a discussion on the GoogleGroup[http://groups.google.com/group/rudy-deployment] * Find some Inspiration[http://www.youtube.com/watch?v=CgaiIW5Rzes] * For all other inquires, email me directly: delano@solutious.com == Thanks * The Rilli.com[http://rilli.com] team * Adam Bognar * Andrew Simpson * Caleb Buxton * Colin Brumelle * Sam Aaron * Everyone at Utrecht.rb[http://groups.google.com/group/utrecht-rb] * Jamis Buck for Net::SSH and friends * Glenn Rempe for amazon-ec2 * Marcel Molina Jr. for aws-s3 * sabat[http://github.com/sabat] * Keshia Knight Pulliam == Contributions I'm very open to contributions! * For bigger features please fork the git repo and send me a pull request. * For small or single file changes, send me an email with the details: delano@solutious.com == Credits * Delano Mandelbaum (delano@solutious.com) * Rudy::AWS::SDB adapted from aws_sdb by Tim Dysinger (http://dysinger.net) == Related Projects * Pool Party -- http://www.poolpartyrb.com/ * Rubber -- http://github.com/wr0ngway/rubber/wikis * Moonshine -- http://github.com/railsmachine/moonshine/tree * Boto -- http://code.google.com/p/boto/ == License See: LICENSE.txt