• Stars
    star
    121
  • Rank 284,005 (Top 6 %)
  • Language
    Ruby
  • License
    MIT License
  • Created over 8 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Simple ssh tool for Amazon EC2

eclair RubyGems total downloads

A video showing how Eclair works

Simple ssh helper for Amazon EC2

gem install ecl

Requirements

  • tmux > 2.0
  • Properly configured ~/.aws/credentials

Usage

$ ecl

First execution will create ~/.ecl/config.rb file. Edit this file and run again.

ย 

Configurations

aws_region

AWS region to connect.

config.aws_region = "ap-northeast-1"

columns

Max number of columns displayed in eclair.

config.columns = 4

ssh_username

Function to find username from image. Returns username of given image. Uses image data from EC2::Client#describe_images API call.

config.ssh_username = lambda do |image|
  case image.name
  when /ubuntu/
    "ubuntu"
  else
    "ec2-user"
  end
end

group_by

Function to find group name from instance. Returns group name from instance data. Uses instance data from EC2::Client#describe_instances API call.

You can group instances by security groups with this config:

config.group_by = lambda do |instance|
  if instance.security_groups.first
    instance.security_groups.first.group_name
  else
    "no_group"
  end
end

Grouping by instance name is also possible:

config.group_by = lambda do |instance|
  case instance.name
  when /^production/
    "production servers"
  when /^test/
    "test servers"
  end
end

You can disable grouping by assigning nil:

config.group_by = nil

ssh_ports

Port numbers to try ssh.

config.ssh_ports = [1234, 22]

ssh_options

Extra options passed to ssh.

config.ssh_options = "-o ConnectTimeout=1 -o StrictHostKeyChecking=no"

ssh_hostname

Hostname to use in ssh. Choose from :public_dns_name, :public_ip_address, :private_dns_name, :private_ip_address

config.ssh_hostname = :public_ip_address

ssh_keys

Hash of EC2 keypair name => key_path in local. If your key has been already registered in ssh-agent, you don't have to configure this.

config.ssh_keys = {
  "keypair1" => "/path/to/key1",
  "keypair2" => "/path/to/key2",
}

use_vpc_id_env (Experimental)

This Feature is experimental and subject to change in future versions

Boolean variable. If true use VPC_ID Environment variable for filtering EC2 instances.

config.use_vpc_id_env = true

Example VPC_ID variable:

VPC_ID=vpc-12345678901234567

ย 

Install from Source

If you want to use the latest functionalities, install Eclair from the source.

# Headers of ncursesw is required to build Eclair in GNU/Linux
sudo apt-get install libncursesw5-dev   # Debian, Ubuntu, etc
sudo yum install libncursesw5-devel     # CentOS, etc

# Build latest eclair gem
gem build eclair.gemspec

# Install eclair into your system
gem install ecl-3.0.4.gem

ย 


eclair is primarily distributed under the terms of the MIT License.

More Repositories

1

DQN-tensorflow

Tensorflow implementation of Human-Level Control through Deep Reinforcement Learning
Python
2,430
star
2

libquic

QUIC, a multiplexed stream transport over UDP
C++
1,714
star
3

goquic

QUIC support for Go
C
940
star
4

pointer-network-tensorflow

TensorFlow implementation of "Pointer Networks"
Python
465
star
5

shardcake

Sharding and location transparency for Scala
Scala
358
star
6

neural-combinatorial-rl-tensorflow

in progress
Python
106
star
7

TCML-tensorflow

Tensorflow implementation of Meta-Learning with Temporal Convolutions
Python
98
star
8

checkpoint

Kubernetes policy checker
Rust
45
star
9

gospdyquic

SPDY/QUIC support for Go
38
star
10

quicbench

HTTP/QUIC load test and benchmark tool
Go
33
star
11

cine

Actor model for golang
Go
29
star
12

UnitySettings

Runtime debugging menu (like setting on Android) for Unity.
C#
28
star
13

UnityCLI

Unity TCP CLI communication for debugging
C#
24
star
14

go-caplit

Go caplit message deserializer
Go
17
star
15

king-openvpn

king-openvpn: The one VPN that connects to any network
HCL
11
star
16

ck-domain-logic-example

์Šค์นผ๋ผ ๊ฐœ๋ฐœ์ž MEET-UP! "์ˆœ์ˆ˜ํžˆ ์•„๋ฆ„๋‹ค์šด ์ฟ ํ‚ค๋Ÿฐ ํ‚น๋ค ๋„๋ฉ”์ธ ๋กœ์ง" ์„ธ์…˜ ๋ฐœํ‘œ ์ž๋ฃŒ์˜ ์˜ˆ์‹œ ์ฝ”๋“œ
Scala
10
star
17

web-packages

devsisters internal npm packages
TypeScript
7
star
18

UnityLuaREPL

C#
7
star
19

zio-agones

Lightweight Scala client for Agones SDK using ZIO
Scala
6
star
20

multi-speaker-tacotron-tensorflow

5
star
21

go-applereceipt

Apple-issued receipts parser & verifier, without any external API call
Go
4
star
22

XLSXasJSON.jl

Julia package that converts excel data to json
Julia
4
star
23

mars-addressables

https://packages.unity.com/com.unity.addressables/
C#
3
star
24

tarballize

Make tarballs of given git repository including its submodules.
Shell
3
star
25

docker-distccd

Dockerized distccd for easy distribution.
Makefile
3
star
26

gatsby-starter-typescript-workspace

A minimal GatsbyJS starter with TypeScript & pnpm workspace
CSS
3
star
27

confluence-to-notion-converter

Confluence to Notion Archive Converter
C#
3
star
28

JSONPointer.jl

implementation of JSONPointer on Julia
Julia
2
star
29

go-dyncapnp

Dynamic Cap'n'proto parsing & generating in Go
Go
2
star
30

docker-nginx-sslproxy

Dockerized nginx proxy w/ SSL suppport
Shell
1
star
31

mars-entities

https://packages.unity.com/com.unity.entities
C#
1
star
32

actions-runner-devsisters

Customized image for actions-runner-controller/actions-runner-controller
Dockerfile
1
star