awsssh 2.2.2 → 3.0.0.rc1
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/.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
|