ec2ssh 2.0.0 → 2.0.1
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.
- data/ChangeLog.md +4 -0
- data/README.md +76 -2
- data/lib/ec2ssh/cli.rb +9 -3
- data/lib/ec2ssh/dotfile.rb +1 -1
- data/lib/ec2ssh/ssh_config.rb +1 -0
- data/lib/ec2ssh/version.rb +1 -1
- data/spec/lib/ec2ssh/cli_spec.rb +4 -1
- metadata +57 -72
data/ChangeLog.md
CHANGED
data/README.md
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
[](https://travis-ci.org/mirakui/ec2ssh)
|
2
|
+
|
1
3
|
# Introduction
|
2
4
|
ec2ssh is a ssh_config manager for amazonaws ec2.
|
3
5
|
`ec2ssh` command adds `Host` descriptions to ssh_config (~/.ssh/config default). 'Name' tag of instances are used as `Host` descriptions.
|
@@ -51,12 +53,29 @@ $ ec2ssh update # Update ec2 hosts list in ssh_config
|
|
51
53
|
$ ec2ssh remove # Remove ec2ssh mark from ssh_config
|
52
54
|
```
|
53
55
|
|
54
|
-
|
56
|
+
## Options
|
57
|
+
### --path
|
58
|
+
Each command can use `--path` option to set ssh_config path. `~/.ssh/config` is default.
|
59
|
+
|
60
|
+
```
|
61
|
+
$ ec2ssh init --path /path/to/ssh_config
|
62
|
+
```
|
63
|
+
|
64
|
+
### --dotfile
|
65
|
+
Each command can use `--dotfile` option to set dotfile (.ec2ssh) path. `~/.ec2ssh` is default.
|
55
66
|
|
56
67
|
```
|
57
|
-
$ ec2ssh init --path
|
68
|
+
$ ec2ssh init --dotfile /path/to/ssh_config
|
58
69
|
```
|
59
70
|
|
71
|
+
### --aws-key
|
72
|
+
`ec2ssh update` allows `--aws-key` option. If you have multiple aws keys, you can choose from them as you like using this option. See Dotfile section for details.
|
73
|
+
|
74
|
+
```
|
75
|
+
$ ec2ssh update --aws-key my_key1
|
76
|
+
```
|
77
|
+
|
78
|
+
|
60
79
|
# ssh_config and mark lines
|
61
80
|
`ec2ssh init` command inserts mark lines your `.ssh/config` such as:
|
62
81
|
|
@@ -86,6 +105,61 @@ Host db-server-1.ap-southeast-1
|
|
86
105
|
|
87
106
|
`ec2ssh remove` command removes the mark lines.
|
88
107
|
|
108
|
+
# Dotfile (.ec2ssh)
|
109
|
+
Dotfile (`.ec2ssh`) is a feature which is released at v2.0.0. A template of `.ec2ssh` is created when you execute `ec2ssh init`.
|
110
|
+
|
111
|
+
```
|
112
|
+
$ ec2ssh init
|
113
|
+
$ cat ~/.ec2ssh
|
114
|
+
---
|
115
|
+
path: /home/yourname/.ssh/config
|
116
|
+
aws_keys:
|
117
|
+
default:
|
118
|
+
access_key_id: ...(Filled by ENV['AMAZON_ACCESS_KEY_ID']
|
119
|
+
secret_access_key: ...(Filled by ENV['AMAZON_SECRET_ACCESS_KEY'])
|
120
|
+
regions:
|
121
|
+
- ap-northeast-1
|
122
|
+
```
|
123
|
+
|
124
|
+
## multiple aws keys
|
125
|
+
You can use multiple aws keys at `ec2ssh update` with `--aws-key` option.
|
126
|
+
|
127
|
+
```
|
128
|
+
$ cat ~/.ec2ssh
|
129
|
+
---
|
130
|
+
path: /home/yourname/.ssh/config
|
131
|
+
aws_keys:
|
132
|
+
default:
|
133
|
+
access_key_id: ...
|
134
|
+
secret_access_key: ...
|
135
|
+
my_key1:
|
136
|
+
access_key_id: ...
|
137
|
+
secret_access_key: ...
|
138
|
+
regions:
|
139
|
+
- ap-northeast-1
|
140
|
+
```
|
141
|
+
|
142
|
+
Updating ssh_config by 'default' aws key:
|
143
|
+
|
144
|
+
```
|
145
|
+
$ ec2ssh update
|
146
|
+
```
|
147
|
+
|
148
|
+
Updates ssh_config by 'my_key1' aws key:
|
149
|
+
|
150
|
+
```
|
151
|
+
$ ec2ssh update --aws-key my_key1
|
152
|
+
```
|
153
|
+
|
154
|
+
# How to upgrade from 1.x to 2.x
|
155
|
+
If you have used ec2ssh-1.x, it seems that you may not have '~/.ec2ssh'.
|
156
|
+
So you need execute `ec2ssh init` once to create `~/.ec2ssh`, and edit it as you like.
|
157
|
+
|
158
|
+
```
|
159
|
+
$ ec2ssh init
|
160
|
+
$ vi ~/.ec2ssh
|
161
|
+
```
|
162
|
+
|
89
163
|
# Notice
|
90
164
|
`ec2ssh` command updates your `.ssh/config` file default. You should make a backup of it.
|
91
165
|
|
data/lib/ec2ssh/cli.rb
CHANGED
@@ -18,7 +18,7 @@ module Ec2ssh
|
|
18
18
|
config.append_mark!
|
19
19
|
green "Added mark to #{config_path}"
|
20
20
|
end
|
21
|
-
dotfile = Dotfile.update_or_create(options.dotfile, 'path' =>
|
21
|
+
dotfile = Dotfile.update_or_create(options.dotfile, 'path' => config_path)
|
22
22
|
yellow "Please check and edit #{options.dotfile} before run `ec2ssh update`"
|
23
23
|
end
|
24
24
|
|
@@ -63,11 +63,17 @@ Host #{h[:host]}
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def dotfile
|
66
|
-
@dotfile ||=
|
66
|
+
@dotfile ||= begin
|
67
|
+
if File.exist?(options.dotfile)
|
68
|
+
Dotfile.load(options.dotfile)
|
69
|
+
else
|
70
|
+
Dotfile.new
|
71
|
+
end
|
72
|
+
end
|
67
73
|
end
|
68
74
|
|
69
75
|
def config_path
|
70
|
-
options.path || dotfile['path'] || "#{
|
76
|
+
options.path || dotfile['path'] || "#{ENV['HOME']}/.ssh/config"
|
71
77
|
end
|
72
78
|
|
73
79
|
[:red,:green,:yellow].each do |col|
|
data/lib/ec2ssh/dotfile.rb
CHANGED
data/lib/ec2ssh/ssh_config.rb
CHANGED
data/lib/ec2ssh/version.rb
CHANGED
data/spec/lib/ec2ssh/cli_spec.rb
CHANGED
@@ -15,6 +15,9 @@ describe Ec2ssh::CLI do
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
18
|
+
before do
|
19
|
+
File.delete(dotfile_path) if File.exist?(dotfile_path)
|
20
|
+
end
|
18
21
|
let(:cli) { described_class }
|
19
22
|
let(:ssh_config_path) do
|
20
23
|
path = tmp_dir.join('ssh_config')
|
@@ -33,7 +36,7 @@ Host foo.bar.com
|
|
33
36
|
tz = ENV['TZ']
|
34
37
|
ENV['TZ'] = 'UTC'
|
35
38
|
Timecop.freeze(Time.local(2013,1,1,0,0,0)) { example.call }
|
36
|
-
ENV['TZ'] =
|
39
|
+
ENV['TZ'] = tz
|
37
40
|
end
|
38
41
|
|
39
42
|
subject { ssh_config_string }
|
metadata
CHANGED
@@ -1,78 +1,72 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ec2ssh
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.0.1
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 2
|
8
|
-
- 0
|
9
|
-
- 0
|
10
|
-
version: 2.0.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Issei Naruta
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-03-11 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: thor
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
18
|
+
requirements:
|
26
19
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 43
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
- 14
|
32
|
-
- 6
|
20
|
+
- !ruby/object:Gem::Version
|
33
21
|
version: 0.14.6
|
34
22
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: highline
|
38
23
|
prerelease: false
|
39
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
25
|
none: false
|
41
|
-
requirements:
|
26
|
+
requirements:
|
42
27
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.14.6
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: highline
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '1.6'
|
49
38
|
type: :runtime
|
50
|
-
version_requirements: *id002
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
|
-
name: aws-sdk
|
53
39
|
prerelease: false
|
54
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
55
41
|
none: false
|
56
|
-
requirements:
|
42
|
+
requirements:
|
57
43
|
- - ~>
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '1.6'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: aws-sdk
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1.8'
|
64
54
|
type: :runtime
|
65
|
-
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.8'
|
66
62
|
description: ec2ssh is a ssh_config manager for AWS EC2
|
67
|
-
email:
|
63
|
+
email:
|
68
64
|
- mimitako@gmail.com
|
69
|
-
executables:
|
65
|
+
executables:
|
70
66
|
- ec2ssh
|
71
67
|
extensions: []
|
72
|
-
|
73
68
|
extra_rdoc_files: []
|
74
|
-
|
75
|
-
files:
|
69
|
+
files:
|
76
70
|
- .gitignore
|
77
71
|
- .rspec
|
78
72
|
- .rvmrc
|
@@ -95,37 +89,28 @@ files:
|
|
95
89
|
- spec/spec_helper.rb
|
96
90
|
homepage: http://github.com/mirakui/ec2ssh
|
97
91
|
licenses: []
|
98
|
-
|
99
92
|
post_install_message:
|
100
93
|
rdoc_options: []
|
101
|
-
|
102
|
-
require_paths:
|
94
|
+
require_paths:
|
103
95
|
- lib
|
104
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
105
97
|
none: false
|
106
|
-
requirements:
|
107
|
-
- -
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
|
110
|
-
|
111
|
-
- 0
|
112
|
-
version: "0"
|
113
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
103
|
none: false
|
115
|
-
requirements:
|
116
|
-
- -
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
|
119
|
-
segments:
|
120
|
-
- 0
|
121
|
-
version: "0"
|
104
|
+
requirements:
|
105
|
+
- - ! '>='
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '0'
|
122
108
|
requirements: []
|
123
|
-
|
124
109
|
rubyforge_project: ec2ssh
|
125
|
-
rubygems_version: 1.8.
|
110
|
+
rubygems_version: 1.8.23
|
126
111
|
signing_key:
|
127
112
|
specification_version: 3
|
128
113
|
summary: A ssh_config manager for AWS EC2
|
129
|
-
test_files:
|
114
|
+
test_files:
|
130
115
|
- spec/lib/ec2ssh/cli_spec.rb
|
131
116
|
- spec/spec_helper.rb
|