Project

ec2-i2cssh

0.0
No commit activity in last 3 years
No release in over 3 years
Use instance tags to launch a I2CSSH session to multiple EC2 instances.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.3
>= 0

Runtime

 Project Readme

Ec2::I2cssh

Forked from gposton/ec2-clusterssh -- uses i2cssh instead of csshX on macos

Use instance tags to launch a ClusterSSH session to multiple EC2 instances.

Installation

$ gem install ec2-i2cssh

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

$ec2-i2cssh -h
Usage: ec2-i2cssh [-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)


$ec2-i2cssh -t Name=web,database                  #Connects to all web and database servers
$ec2-i2cssh -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

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request