Ec2::Clusterssh
Use instance tags to launch a ClusterSSH session to multiple EC2 instances.
Installation
$ 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]
Prerequisites
- 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='...'
Usage
$cluster -h
Usage: cluster [-t TAGS] [-l USER] [-k KEY -s SECRET] [-r region]
-l, --login [USER] Log in with this user
-t, --tags [TAGS] a 'space' sparated key value pair of tags and values (i.e. -t 'role=web,database environment=dev')
-r, --region [REGION] AWS region
-s, --screen [SCREEN] What screen to use for clustering windows (form multiple displays)
-p, --use-public-ip Use public IP (default false)
$cluster -t Name=web,database #Connects to all web and database servers
$cluster -t 'role=web,database environment=dev' #Connects to all web and database servers in the dev environment
Notes
If you use a bastion jumphost, you'll want to configure your ssh config file to route the relavant IP ranges through your bastion. (i.e. 192.168.*)
Contributing
- 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