awsssh 2.2.2 → 3.0.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +0 -1
- data/Gemfile.lock +50 -0
- data/README.md +35 -7
- data/awsssh.gemspec +6 -8
- data/lib/awsssh/version.rb +1 -1
- data/lib/awsssh.rb +86 -183
- data/spec/awsssh_spec.rb +4 -4
- metadata +56 -47
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0854a6413cf6ae7a3971665cc5e1424a648320b0
|
4
|
+
data.tar.gz: 109523c466e6e9331f3250b787138702fd949bc7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1beffa40be5c1b8516c1ee15feaf95b39e32db9f9a75cebcfa07acf97aefe935680a2414abb8384befc90bd7e04d1ae5ce2d897afafc81bd8075ec64eed84f3
|
7
|
+
data.tar.gz: 599513c140e9c421e3ac2764070cb1d9dac9c72b7904bcdeae98082d71b949cd8ba3aaa1595b96ff3139e134c63a54b2a9e38b61cfd00cbf149c6a3bfec3d2bb
|
data/.gitignore
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
awsssh (3.0.0.rc1)
|
5
|
+
aws-sdk (~> 2.2.0, >= 2.2.0)
|
6
|
+
inifile (~> 3.0.0, >= 3.0.0)
|
7
|
+
thor (~> 0.19.1, >= 0.19.1)
|
8
|
+
|
9
|
+
GEM
|
10
|
+
remote: https://rubygems.org/
|
11
|
+
specs:
|
12
|
+
aws-sdk (2.2.14)
|
13
|
+
aws-sdk-resources (= 2.2.14)
|
14
|
+
aws-sdk-core (2.2.14)
|
15
|
+
jmespath (~> 1.0)
|
16
|
+
aws-sdk-resources (2.2.14)
|
17
|
+
aws-sdk-core (= 2.2.14)
|
18
|
+
coderay (1.1.0)
|
19
|
+
diff-lcs (1.2.5)
|
20
|
+
inifile (3.0.0)
|
21
|
+
jmespath (1.1.3)
|
22
|
+
method_source (0.8.2)
|
23
|
+
pry (0.10.3)
|
24
|
+
coderay (~> 1.1.0)
|
25
|
+
method_source (~> 0.8.1)
|
26
|
+
slop (~> 3.4)
|
27
|
+
rspec (3.4.0)
|
28
|
+
rspec-core (~> 3.4.0)
|
29
|
+
rspec-expectations (~> 3.4.0)
|
30
|
+
rspec-mocks (~> 3.4.0)
|
31
|
+
rspec-core (3.4.2)
|
32
|
+
rspec-support (~> 3.4.0)
|
33
|
+
rspec-expectations (3.4.0)
|
34
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
35
|
+
rspec-support (~> 3.4.0)
|
36
|
+
rspec-mocks (3.4.1)
|
37
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
38
|
+
rspec-support (~> 3.4.0)
|
39
|
+
rspec-support (3.4.1)
|
40
|
+
slop (3.6.0)
|
41
|
+
thor (0.19.1)
|
42
|
+
|
43
|
+
PLATFORMS
|
44
|
+
ruby
|
45
|
+
|
46
|
+
DEPENDENCIES
|
47
|
+
awsssh!
|
48
|
+
bundler (~> 1.8, >= 1.8.3)
|
49
|
+
pry (~> 0.10.3, >= 0.10.3)
|
50
|
+
rspec (~> 3.4.0, >= 3.4.0)
|
data/README.md
CHANGED
@@ -14,26 +14,54 @@ Mitlerweile ist aus `awsssh` ein richtiges gem geworden.
|
|
14
14
|
1. `gem install awsssh`
|
15
15
|
|
16
16
|
### Configurationen
|
17
|
-
|
18
|
-
|
17
|
+
* Es muss die Variable `AWS_CREDENTIAL_FILE` auf das Credentialfile gesetzt sein.
|
18
|
+
* In der Datei müssen die Zugangsdaten in der folgenden Form enthalten sein:
|
19
|
+
```
|
20
|
+
[PROFILE-1]
|
21
|
+
aws_access_key_id=VALUE
|
22
|
+
aws_secret_access_key=VALUE
|
23
|
+
[PROFILE-n]
|
24
|
+
aws_access_key_id=VALUE
|
25
|
+
aws_secret_access_key=VALUE
|
26
|
+
```
|
19
27
|
|
20
28
|
## Aufruf
|
21
29
|
|
22
|
-
|
30
|
+
### Mit Server verbinden
|
31
|
+
|
32
|
+
Wenn der Profilname im Hostname enthalten ist:<br>
|
33
|
+
`awsssh HOSTNAME`
|
34
|
+
|
35
|
+
**Beispiel**<br>
|
36
|
+
`awsssh profile-live-1`
|
37
|
+
|
38
|
+
Wenn der Profilname nicht im Hostname enthalten ist:<br>
|
39
|
+
`awsssh HOSTNAME --profile PROFILE`
|
23
40
|
|
24
41
|
**Beispiel**<br>
|
25
|
-
`awsssh
|
42
|
+
`awsssh live-1 --profile KundeXY`
|
26
43
|
|
27
|
-
|
44
|
+
### Liste aller Profile
|
45
|
+
`awsssh list_profiles`
|
28
46
|
|
29
|
-
|
30
|
-
|
47
|
+
### Liste aller Server für ein Profil
|
48
|
+
`awsssh list_server PROFIL`
|
49
|
+
|
50
|
+
### Hilfe
|
51
|
+
`awsssh help`
|
52
|
+
|
53
|
+
### Version
|
54
|
+
`awsssh version`
|
31
55
|
|
32
56
|
## Kontakt
|
33
57
|
|
34
58
|
Sebastian Thiele Twitter: (@sebat)
|
35
59
|
|
36
60
|
## Changelog
|
61
|
+
**2016-02-04 - v 3.0.0.rc1**
|
62
|
+
* redesign
|
63
|
+
* new credential format
|
64
|
+
|
37
65
|
**2015-11-25 - v 2.2.2**
|
38
66
|
* [fix] List all Servers
|
39
67
|
|
data/awsssh.gemspec
CHANGED
@@ -18,13 +18,11 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_development_dependency "bundler", "~> 1.8.3"
|
22
|
-
spec.add_development_dependency "
|
23
|
-
spec.add_development_dependency "
|
24
|
-
spec.add_development_dependency "rspec", "~> 2.6"
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.8", ">= 1.8.3"
|
22
|
+
spec.add_development_dependency "pry", "~> 0.10.3", ">= 0.10.3"
|
23
|
+
spec.add_development_dependency "rspec", "~> 3.4.0", ">= 3.4.0"
|
25
24
|
|
26
|
-
spec.add_runtime_dependency "
|
27
|
-
spec.add_runtime_dependency "
|
28
|
-
spec.add_runtime_dependency "
|
29
|
-
spec.add_runtime_dependency "thor", "0.18.1"
|
25
|
+
spec.add_runtime_dependency "inifile", "~> 3.0.0", ">= 3.0.0"
|
26
|
+
spec.add_runtime_dependency "aws-sdk", "~> 2.2.0", ">= 2.2.0"
|
27
|
+
spec.add_runtime_dependency "thor", "~> 0.19.1", ">= 0.19.1"
|
30
28
|
end
|
data/lib/awsssh/version.rb
CHANGED
data/lib/awsssh.rb
CHANGED
@@ -1,211 +1,114 @@
|
|
1
1
|
require "awsssh/version"
|
2
|
-
require 'net/ssh'
|
3
|
-
require 'json'
|
4
|
-
require "aws-sdk"
|
5
|
-
# Bundler.require(:default, :development)
|
6
|
-
require "inifile"
|
7
2
|
require "thor"
|
3
|
+
require "inifile"
|
4
|
+
require "aws-sdk"
|
5
|
+
|
8
6
|
|
9
7
|
module Awsssh
|
10
8
|
class Awsssh < Thor
|
11
|
-
CONFIG_DIR = ENV['AWSSSH_CONFIG_DIR'] || "/Users/#{ENV['USER']}/.aws/"
|
12
|
-
CONF_FILE = ENV['AWSSSH_CONFIG_FILE'] || "aws_config_"
|
13
|
-
|
14
|
-
desc "-s SERVER [-a ACCOUNT]", "connect to a server"
|
15
|
-
option :server, :aliases => '-s', :desc => "(required) The server name to connect with"
|
16
|
-
option :account, :aliases => '-a', :desc => "Specify a account for a connection. Needet if the account don't came from the server name"
|
17
|
-
option :list, :aliases => '-l', :desc => "List any items use with -s for Servers or -a ACCOUNT for accounts", :type => :boolean
|
18
|
-
option :check, :aliases => '-c', :desc => "Alerts when -c STATE comes up for -s SERVER"
|
19
|
-
option :version, :aliases => '-v', :desc => "Version"
|
20
|
-
long_desc <<-LONGDESC
|
21
|
-
# Connect to a Server:
|
22
|
-
|
23
|
-
|
24
|
-
> $ awsssh -s SERVER
|
25
|
-
\x5 This will connect you to a Server. This will work only if the first part of the server name is the same as the account name.
|
26
|
-
|
27
|
-
> $ awsssh -s SERVER -a ACCOUNT
|
28
|
-
\x5 With -a you can spezify a account to connect with. The server name don't play any role.
|
29
|
-
|
30
|
-
# List all Account:
|
31
|
-
|
32
|
-
> $ awsssh -l -a
|
33
|
-
\x5 This will list all Accounts
|
34
9
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
LONGDESC
|
43
|
-
def connect
|
44
|
-
if options[:list] && options[:account]
|
45
|
-
list_accounts
|
46
|
-
elsif options[:list] && options[:server]
|
47
|
-
list_servers(options[:server])
|
48
|
-
elsif options[:server]
|
49
|
-
connecting(options[:server], options[:account])
|
50
|
-
elsif options[:version]
|
51
|
-
puts VERSION
|
52
|
-
else
|
53
|
-
help "connect"
|
10
|
+
desc "list_profiles", "List all your avavible profiles"
|
11
|
+
def list_profiles()
|
12
|
+
credentials = open_credantial_file
|
13
|
+
puts "List of all known AWS Accounts"
|
14
|
+
puts
|
15
|
+
credentials.sections.each do |section|
|
16
|
+
puts " #{section}"
|
54
17
|
end
|
55
18
|
end
|
56
19
|
|
57
|
-
|
58
|
-
|
59
|
-
|
20
|
+
desc "list_server PROFILE", "List all Server for given profile"
|
21
|
+
def list_server(profile)
|
22
|
+
credentials = open_credantial_file
|
23
|
+
raise "Profile `#{profile}` not found. Please try `awsssh list_profiles`" if credentials[profile].empty?
|
24
|
+
aws_connection(profile, credentials)
|
60
25
|
|
61
|
-
|
26
|
+
puts "Stacks and instances for profile `#{profile}`"
|
27
|
+
puts
|
62
28
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
# - +account+ -> Account name
|
68
|
-
#
|
69
|
-
# * *Returns* :
|
70
|
-
# - [Array] StackIDs
|
71
|
-
def list_stacks(account)
|
72
|
-
ow = awscfg(account)
|
73
|
-
stacks = ow.client.describe_stacks[:stacks]
|
74
|
-
stack_ids = []
|
75
|
-
stacks.each do |stack|
|
76
|
-
stack_ids << stack[:stack_id]
|
29
|
+
@client.describe_stacks.stacks.each do |stack|
|
30
|
+
puts "##### Stack: #{stack.name}"
|
31
|
+
@client.describe_instances({stack_id: stack.stack_id}).instances.each do |instance|
|
32
|
+
printf " %-20s status: %-11s %s\n" % [instance.hostname, instance.status, public_dns(instance)]
|
77
33
|
end
|
78
|
-
|
79
|
-
end
|
80
|
-
|
81
|
-
|
82
|
-
##
|
83
|
-
# Read Stack
|
84
|
-
#
|
85
|
-
# * *Args* :
|
86
|
-
# - +stackid+ -> Stack ID
|
87
|
-
# - +account+ -> Account name
|
88
|
-
#
|
89
|
-
# * *Returns* :
|
90
|
-
# - Stecks JSON
|
91
|
-
#
|
92
|
-
def read_stack(stackid, account)
|
93
|
-
ow = awscfg(account)
|
94
|
-
ow.client.describe_instances({:stack_id => stackid})
|
95
|
-
# JSON.parse(`aws opsworks describe-instances --stack-id #{stackid}`)
|
34
|
+
puts ""
|
96
35
|
end
|
36
|
+
end
|
97
37
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
38
|
+
desc "connect SERVERNAME", "Connect to Hostname"
|
39
|
+
option :profile, :desc => "specify a profile - see `awsssh list_profiles`"
|
40
|
+
def connect (hostname)
|
41
|
+
hostname_parts = hostname.split("-")
|
42
|
+
profile = options[:profile] || hostname_parts[0]
|
43
|
+
credentials = open_credantial_file
|
44
|
+
puts "Profile `#{profile}` not found. Try `awsssh SERVERNAME --profile PROFILE`" if credentials[profile].empty?
|
45
|
+
exit -1 if credentials[profile].empty?
|
46
|
+
|
47
|
+
aws_connection(profile, credentials)
|
48
|
+
puts "looking for hostname `#{hostname}` in profile `#{profile}`. This may take a while..."
|
49
|
+
puts
|
50
|
+
public_dns = find_server(@client.describe_stacks.stacks, hostname)
|
51
|
+
if public_dns.nil?
|
52
|
+
puts "`#{hostname}` was not found or has no public ip."
|
53
|
+
puts "Try `awsssh list_server PROFILE`"
|
54
|
+
puts "checking your local ssh config..."
|
55
|
+
puts
|
56
|
+
exec "ssh #{hostname}"
|
57
|
+
exit -1
|
58
|
+
else
|
59
|
+
puts "start ssh connection to `#{hostname}`..."
|
60
|
+
puts
|
61
|
+
exec "ssh #{public_dns}"
|
62
|
+
exit 0
|
117
63
|
end
|
64
|
+
end
|
118
65
|
|
119
|
-
|
120
|
-
|
121
|
-
#
|
122
|
-
|
123
|
-
# - +stack+ -> Stack as JSON
|
124
|
-
#
|
125
|
-
# * *Returns* :
|
126
|
-
# - [String]
|
127
|
-
# - <servername> (<status>)
|
128
|
-
def server_name(stack)
|
129
|
-
stack[:instances].each do |instance|
|
130
|
-
host = build_hostname(instance)
|
131
|
-
printf "\t- %-20s %s \t %-15s \t %s\n", instance[:hostname], instance[:status], host[:ip], host[:hostname]
|
132
|
-
end
|
133
|
-
end
|
66
|
+
desc "version", "Version"
|
67
|
+
def version
|
68
|
+
puts "version #{VERSION}"
|
69
|
+
end
|
134
70
|
|
135
|
-
##
|
136
|
-
# List all Servers for a given AWS Account
|
137
|
-
#
|
138
|
-
# * *Args* :
|
139
|
-
# - +account+ -> AWS Account name
|
140
|
-
#
|
141
|
-
def list_servers(account)
|
142
|
-
stacks = list_stacks account
|
143
|
-
stacks.each do |stack_id|
|
144
|
-
stack = read_stack stack_id, account
|
145
|
-
server_name stack
|
146
|
-
end
|
147
|
-
end
|
148
71
|
|
149
|
-
|
150
|
-
# Establish the connection
|
151
|
-
#
|
152
|
-
# * *Args* :
|
153
|
-
# - +server+ -> Server name
|
154
|
-
#
|
155
|
-
def connecting(server, account=nil)
|
156
|
-
public_dns = nil
|
157
|
-
host = server.split("-")
|
158
|
-
ac = account || host[0]
|
159
|
-
stack_ids = list_stacks ac
|
160
|
-
stack_ids.each do |stack_id|
|
161
|
-
stack = read_stack(stack_id, ac)
|
162
|
-
stack.instances.each do |i|
|
163
|
-
if i[:hostname] == server
|
164
|
-
public_dns = build_hostname(i)[:hostname]
|
165
|
-
break
|
166
|
-
end
|
167
|
-
end
|
168
|
-
break unless public_dns.nil?
|
169
|
-
end
|
72
|
+
private
|
170
73
|
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
74
|
+
##
|
75
|
+
# open and check credential file
|
76
|
+
#
|
77
|
+
def open_credantial_file()
|
78
|
+
raise "Enviroment variable `AWS_CREDENTIAL_FILE` not set" if ENV['AWS_CREDENTIAL_FILE'].nil?
|
79
|
+
raise "Credential File not found. Please check path `#{ENV['AWS_CREDENTIAL_FILE']}`" unless File.exist?(ENV['AWS_CREDENTIAL_FILE'])
|
80
|
+
IniFile.load(ENV['AWS_CREDENTIAL_FILE'])
|
81
|
+
end
|
176
82
|
|
177
|
-
|
178
|
-
|
83
|
+
##
|
84
|
+
#
|
85
|
+
def aws_connection(profile, credentials = nil)
|
86
|
+
credentials ||= open_credantial_file
|
87
|
+
@client = Aws::OpsWorks::Client.new({
|
88
|
+
region: credentials[profile]["region"],
|
89
|
+
credentials: Aws::Credentials.new(
|
90
|
+
credentials[profile]["aws_access_key_id"],
|
91
|
+
credentials[profile]["aws_secret_access_key"]
|
92
|
+
)
|
93
|
+
})
|
94
|
+
end
|
179
95
|
|
180
|
-
|
96
|
+
def public_dns(instance)
|
97
|
+
public_ip = instance.public_ip || instance.elastic_ip
|
98
|
+
return nil if public_ip == nil
|
99
|
+
"ec2-#{public_ip.gsub(".", "-")}.#{instance.availability_zone.chop}.compute.amazonaws.com"
|
100
|
+
end
|
181
101
|
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
return host
|
102
|
+
def find_server(stacks, hostname)
|
103
|
+
stacks.each do |stack|
|
104
|
+
@client.describe_instances({stack_id: stack.stack_id}).instances.each do |instance|
|
105
|
+
return public_dns(instance) if instance.hostname == hostname
|
187
106
|
end
|
188
|
-
az = (instance[:availability_zone][-1].match(/[a-z]/)) ?
|
189
|
-
instance[:availability_zone][0..-2] :
|
190
|
-
instance[:availability_zone]
|
191
|
-
host[:ip] = instance[:public_ip] || instance[:elastic_ip]
|
192
|
-
host[:hostname] = "ec2-#{host[:ip].gsub("\.", "\-")}.#{az}.compute.amazonaws.com"
|
193
|
-
host
|
194
107
|
end
|
108
|
+
return nil
|
109
|
+
end
|
110
|
+
|
195
111
|
|
196
|
-
def awscfg(account)
|
197
|
-
if cnf = IniFile.load(CONFIG_DIR + CONF_FILE + account)
|
198
|
-
cnf = cnf['default']
|
199
|
-
return AWS::OpsWorks.new(
|
200
|
-
access_key_id: cnf['aws_access_key_id'],
|
201
|
-
secret_access_key: cnf['aws_secret_access_key'],
|
202
|
-
region: cnf['region']
|
203
|
-
)
|
204
|
-
else
|
205
|
-
puts "No config #{CONF_FILE}#{account} found. Maybe use -a to specify a account."
|
206
|
-
exit -1
|
207
|
-
end
|
208
|
-
end
|
209
112
|
default_task :connect
|
210
113
|
end
|
211
114
|
end
|
data/spec/awsssh_spec.rb
CHANGED
@@ -8,10 +8,10 @@ describe Awsssh::Awsssh do
|
|
8
8
|
capture(:stdout) { runner.send(*args, &block) }
|
9
9
|
end
|
10
10
|
|
11
|
-
describe "on list
|
12
|
-
it "lists all
|
11
|
+
describe "on list server" do
|
12
|
+
it "lists all server" do
|
13
13
|
base = Awsssh::Awsssh.new ["-s"]
|
14
|
-
base.send(:
|
14
|
+
expect(base.send(:list_server, 'trox').class).to eq [].class
|
15
15
|
end
|
16
16
|
end
|
17
|
-
end
|
17
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awsssh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sebastian Thiele
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,112 +16,120 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.8
|
20
|
-
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
19
|
+
version: '1.8'
|
20
|
+
- - ">="
|
25
21
|
- !ruby/object:Gem::Version
|
26
22
|
version: 1.8.3
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rake
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 10.4.2
|
34
23
|
type: :development
|
35
24
|
prerelease: false
|
36
25
|
version_requirements: !ruby/object:Gem::Requirement
|
37
26
|
requirements:
|
38
27
|
- - "~>"
|
39
28
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
29
|
+
version: '1.8'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.8.3
|
41
33
|
- !ruby/object:Gem::Dependency
|
42
34
|
name: pry
|
43
35
|
requirement: !ruby/object:Gem::Requirement
|
44
36
|
requirements:
|
45
37
|
- - "~>"
|
46
38
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.10.
|
39
|
+
version: 0.10.3
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 0.10.3
|
48
43
|
type: :development
|
49
44
|
prerelease: false
|
50
45
|
version_requirements: !ruby/object:Gem::Requirement
|
51
46
|
requirements:
|
52
47
|
- - "~>"
|
53
48
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.10.
|
49
|
+
version: 0.10.3
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 0.10.3
|
55
53
|
- !ruby/object:Gem::Dependency
|
56
54
|
name: rspec
|
57
55
|
requirement: !ruby/object:Gem::Requirement
|
58
56
|
requirements:
|
59
57
|
- - "~>"
|
60
58
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
59
|
+
version: 3.4.0
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 3.4.0
|
62
63
|
type: :development
|
63
64
|
prerelease: false
|
64
65
|
version_requirements: !ruby/object:Gem::Requirement
|
65
66
|
requirements:
|
66
67
|
- - "~>"
|
67
68
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
69
|
-
-
|
70
|
-
name: net-ssh
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - '='
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: 2.7.0
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - '='
|
69
|
+
version: 3.4.0
|
70
|
+
- - ">="
|
81
71
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
72
|
+
version: 3.4.0
|
83
73
|
- !ruby/object:Gem::Dependency
|
84
74
|
name: inifile
|
85
75
|
requirement: !ruby/object:Gem::Requirement
|
86
76
|
requirements:
|
87
|
-
- -
|
77
|
+
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 3.0.0
|
80
|
+
- - ">="
|
88
81
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
82
|
+
version: 3.0.0
|
90
83
|
type: :runtime
|
91
84
|
prerelease: false
|
92
85
|
version_requirements: !ruby/object:Gem::Requirement
|
93
86
|
requirements:
|
94
|
-
- -
|
87
|
+
- - "~>"
|
95
88
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
89
|
+
version: 3.0.0
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: 3.0.0
|
97
93
|
- !ruby/object:Gem::Dependency
|
98
94
|
name: aws-sdk
|
99
95
|
requirement: !ruby/object:Gem::Requirement
|
100
96
|
requirements:
|
101
|
-
- -
|
97
|
+
- - "~>"
|
102
98
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
99
|
+
version: 2.2.0
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 2.2.0
|
104
103
|
type: :runtime
|
105
104
|
prerelease: false
|
106
105
|
version_requirements: !ruby/object:Gem::Requirement
|
107
106
|
requirements:
|
108
|
-
- -
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 2.2.0
|
110
|
+
- - ">="
|
109
111
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
112
|
+
version: 2.2.0
|
111
113
|
- !ruby/object:Gem::Dependency
|
112
114
|
name: thor
|
113
115
|
requirement: !ruby/object:Gem::Requirement
|
114
116
|
requirements:
|
115
|
-
- -
|
117
|
+
- - "~>"
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: 0.19.1
|
120
|
+
- - ">="
|
116
121
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0.
|
122
|
+
version: 0.19.1
|
118
123
|
type: :runtime
|
119
124
|
prerelease: false
|
120
125
|
version_requirements: !ruby/object:Gem::Requirement
|
121
126
|
requirements:
|
122
|
-
- -
|
127
|
+
- - "~>"
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: 0.19.1
|
130
|
+
- - ">="
|
123
131
|
- !ruby/object:Gem::Version
|
124
|
-
version: 0.
|
132
|
+
version: 0.19.1
|
125
133
|
description: This will connects you with an EC2 instace
|
126
134
|
email:
|
127
135
|
- Sebastian.Thiele@infopark.de
|
@@ -132,6 +140,7 @@ extra_rdoc_files: []
|
|
132
140
|
files:
|
133
141
|
- ".gitignore"
|
134
142
|
- Gemfile
|
143
|
+
- Gemfile.lock
|
135
144
|
- LICENSE.txt
|
136
145
|
- README.md
|
137
146
|
- Rakefile
|
@@ -155,9 +164,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
155
164
|
version: '0'
|
156
165
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
166
|
requirements:
|
158
|
-
- - "
|
167
|
+
- - ">"
|
159
168
|
- !ruby/object:Gem::Version
|
160
|
-
version:
|
169
|
+
version: 1.3.1
|
161
170
|
requirements: []
|
162
171
|
rubyforge_project:
|
163
172
|
rubygems_version: 2.2.2
|