Use instance tags to launch a ClusterSSH session to multiple EC2 instances.
$ gem install ec2-clusterssh
Note: Mac users with the latest version of XCode may run into a compilation error installing the json gem dependency. If you see the following error during the gem installation, see this page for a workaround
clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]
- ClusterSSH (To install csshx on mac use this page)
- Set up your AWS credentials (note that these values can be also passed in as command line options)
export AWS_ACCESS_KEY_ID='...'
export AWS_SECRET_ACCESS_KEY='...'
export AWS_REGION='us-west-2'
- Edit /etc/csshrc to add the path to your identity file (rsa key). NOTE: Some linux users have reported problems using /etc/csshrc, but have had success using ~/.csshrc.
ssh_args = -i path/to/identity/file
$cluster -h
Usage: cluster [-t TAG] [-l USER] [-k KEY -s SECRET] [-r region] -v VALUES
-l, --login [USER] Log in with this user (default: ec2-user)
-t, --tag [TAG] TAG to filter on (default: role)
-v, --values [VALUES] a comma separated (no spaces) list of values to match against (i.e. web,database)
-k, --access-key [KEY] AWS access key
-s, --secret-key [SECRET] AWS secret key
-r, --region [REGION] AWS region
-o, --options [SSH_OPTIONS] ssh options to pass directly to cssh
$cluster -l ec2-user -t Name -v web,database
$cluster -o"-i /Path/to/key.pem" -t TagName -v database
- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request