awssh 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +39 -10
- data/lib/awssh/command.rb +25 -19
- data/lib/awssh/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf4f811b2deee46c61931cb776834d68384ae7d6
|
4
|
+
data.tar.gz: 79bc526ecf91a64b45a690b1914902be7f84547d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4601030e632b861310b8a8874b866f4a395cd17e16f86fbd7c7299472389f9144ac0deaafac09c3d4ac0eee1320b2029d3a070935a9986ff3cb62e4565b6d83
|
7
|
+
data.tar.gz: c3a5e9d1abfc33514afcdf9a940fe16ecb4dffd4fa33e049dcf2dd6ba4f1e711bf0293afacb43f050cc2c46cd9fc144cc48608bedf7419284d66e0b266e55a9e
|
data/README.md
CHANGED
@@ -4,10 +4,15 @@ Hacky way to handle ssh to AWS servers
|
|
4
4
|
|
5
5
|
- Searches for servers based on AWS tag Name.
|
6
6
|
- Provides the ability to use single ssh and multiple ssh access.
|
7
|
-
-
|
7
|
+
- Use cssh or csshX (configurable) for mulit-server access
|
8
|
+
- caches list of servers, to minimize calls to AWS (primarily for speed).
|
8
9
|
|
9
10
|
## Installation
|
10
11
|
|
12
|
+
Generally, you will install this directly:
|
13
|
+
|
14
|
+
$ gem install awssh
|
15
|
+
|
11
16
|
Add this line to your application's Gemfile:
|
12
17
|
|
13
18
|
gem 'awssh'
|
@@ -16,10 +21,6 @@ And then execute:
|
|
16
21
|
|
17
22
|
$ bundle
|
18
23
|
|
19
|
-
Or install it yourself as:
|
20
|
-
|
21
|
-
$ gem install awssh
|
22
|
-
|
23
24
|
## Usage
|
24
25
|
|
25
26
|
```
|
@@ -30,17 +31,45 @@ Search Terms:
|
|
30
31
|
positive check for each entry
|
31
32
|
name =~ /term/
|
32
33
|
negative check if the term starts with ^
|
33
|
-
name !~ /term/
|
34
|
+
name !~ /term/
|
34
35
|
|
35
36
|
Options:
|
37
|
+
-V, --version print version
|
38
|
+
-i, --init initialize config
|
39
|
+
|
40
|
+
-l, --list just list servers
|
36
41
|
-n, --test just output ssh command
|
37
42
|
-v, --[no-]verbose Run verbosely
|
38
|
-
|
39
|
-
-
|
43
|
+
|
44
|
+
-U, --update just update the cache
|
45
|
+
--no-cache disable cache for this run
|
46
|
+
|
40
47
|
-m, --[no-]multi connect to multiple servers
|
41
|
-
-
|
48
|
+
-c, --config override config file (default: ~/.awssh)
|
49
|
+
-u, --user override user setting
|
50
|
+
|
42
51
|
```
|
43
52
|
|
53
|
+
## Config
|
54
|
+
```
|
55
|
+
---
|
56
|
+
multi: csshX # multi ssh program: csshX or cssh
|
57
|
+
single: ssh # ssh program, allows for common configs
|
58
|
+
region: us-east-1 # ec2 region
|
59
|
+
user: # username to ssh as
|
60
|
+
key: AWS ACCESS KEY ID # AWS key
|
61
|
+
secret: AWS SECRET ACCESS KEY # AWS secret
|
62
|
+
domain: example.com # append domain to server names
|
63
|
+
cache: "~/.awssh.cache" # cache file location
|
64
|
+
expires: 86400 # cache expiration time (in seconds)
|
65
|
+
```
|
66
|
+
|
67
|
+
## Caching
|
68
|
+
|
69
|
+
Maintains a simple cache with expiration (default: 1 day)
|
70
|
+
The cache just contains the list of servers' names.
|
71
|
+
You can disable the cache by setting the cache value to false in the config file.
|
72
|
+
|
44
73
|
## Shell Alias
|
45
74
|
|
46
75
|
To get around using multiple RVM's and still have access to awssh command
|
@@ -48,7 +77,7 @@ To get around using multiple RVM's and still have access to awssh command
|
|
48
77
|
alias awssh='rvm <rvm version> do awssh'
|
49
78
|
|
50
79
|
When you install awssh into your default ruby, then change to a project ruby,
|
51
|
-
the awssh gem is
|
80
|
+
the awssh gem is no longer available. This allows you to use the awssh gem
|
52
81
|
from ruby. Just specify the default rvm version in <rvm verison> above.
|
53
82
|
|
54
83
|
alias awssh='rvm 2.1.2 do awssh'
|
data/lib/awssh/command.rb
CHANGED
@@ -21,7 +21,7 @@ module Awssh
|
|
21
21
|
}.stringify_keys
|
22
22
|
|
23
23
|
@config_file = File.expand_path(@options[:config])
|
24
|
-
@config.merge!(YAML.load_file(@config_file)) if File.exists?(@config_file)
|
24
|
+
@config.merge!(YAML.load_file(@config_file)||{}) if File.exists?(@config_file)
|
25
25
|
|
26
26
|
OptionParser.new do |opts|
|
27
27
|
opts.banner = "Usage: awssh [options] [search terms]"
|
@@ -32,43 +32,49 @@ module Awssh
|
|
32
32
|
opts.separator ' positive check for each entry'
|
33
33
|
opts.separator ' name =~ /term/'
|
34
34
|
opts.separator ' negative check if the term starts with ^'
|
35
|
-
opts.separator ' name !~ /term/
|
35
|
+
opts.separator ' name !~ /term/'
|
36
36
|
opts.separator ''
|
37
37
|
opts.separator 'Options:'
|
38
|
-
|
39
|
-
opts.on('-n', '--test', 'just output ssh command') do |n|
|
40
|
-
@options[:test] = n
|
41
|
-
end
|
42
|
-
opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
|
43
|
-
@options[:verbose] = v
|
44
|
-
end
|
45
38
|
opts.on('-V', '--version', 'print version') do |v|
|
46
39
|
puts "awssh version: #{Awssh::Version::STRING}"
|
47
40
|
exit 0
|
48
41
|
end
|
49
|
-
opts.on('-c', "--config", "config file (default: ~/.awssh)") do |c|
|
50
|
-
@options[:config] = c
|
51
|
-
end
|
52
|
-
opts.on('-m', '--[no-]multi', 'connect to multiple servers') do |m|
|
53
|
-
@options[:multi] = m
|
54
|
-
end
|
55
42
|
opts.on('-i', '--init', 'initialize config') do |i|
|
56
43
|
path = File.expand_path("~/.awssh")
|
57
|
-
File.open(path, "w+") { |f| f.write config.to_yaml }
|
44
|
+
File.open(path, "w+") { |f| f.write @config.to_yaml }
|
58
45
|
puts "created config file: #{path}"
|
59
46
|
exit 0
|
60
47
|
end
|
61
|
-
opts.
|
62
|
-
@config['user'] = u
|
63
|
-
end
|
48
|
+
opts.separator ''
|
64
49
|
opts.on('-l', '--list', 'just list servers') do |l|
|
65
50
|
@options[:list] = true
|
66
51
|
end
|
52
|
+
opts.on('-n', '--test', 'just output ssh command') do |n|
|
53
|
+
@options[:test] = n
|
54
|
+
end
|
55
|
+
opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
|
56
|
+
@options[:verbose] = v
|
57
|
+
end
|
58
|
+
|
59
|
+
opts.separator ''
|
67
60
|
opts.on('-U', '--update', 'just update the cache') do |u|
|
68
61
|
@options[:update] = true
|
69
62
|
get_servers
|
70
63
|
exit 0
|
71
64
|
end
|
65
|
+
opts.on('--no-cache', 'disable cache for this run') do |u|
|
66
|
+
@config['cache'] = false
|
67
|
+
end
|
68
|
+
opts.separator ''
|
69
|
+
opts.on('-m', '--[no-]multi', 'connect to multiple servers') do |m|
|
70
|
+
@options[:multi] = m
|
71
|
+
end
|
72
|
+
opts.on('-c', "--config", "override config file (default: ~/.awssh)") do |c|
|
73
|
+
@options[:config] = c
|
74
|
+
end
|
75
|
+
opts.on('-u', '--user', 'override user setting') do |u|
|
76
|
+
@config['user'] = u
|
77
|
+
end
|
72
78
|
end.parse!(argv)
|
73
79
|
|
74
80
|
@search = argv
|
data/lib/awssh/version.rb
CHANGED