puppet_ec2_enc 0.1.1 → 0.2.2
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 +1 -0
- data/exe/puppet_ec2_enc +11 -0
- data/lib/puppet_ec2_enc.rb +5 -4
- data/lib/puppet_ec2_enc/ec2tags.rb +2 -10
- data/lib/puppet_ec2_enc/instance.rb +45 -0
- data/lib/puppet_ec2_enc/version.rb +1 -1
- data/puppet_ec2_enc.gemspec +2 -2
- metadata +8 -7
- data/exe/puppet_ec2_enc.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 60913d10ff8ae2d089a94e77315856b39e46daa9
|
4
|
+
data.tar.gz: 81246e7da702eee2d3a07c376c24bc109c669a0b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0aeda2ed057c932380f3270f87ed6607d63fe796f60d4947fc70777ff369fec9e9628ef647d11f6c1ab6fcbad8ac59021d57fa10aaad0918cce45d4f1a0022d3
|
7
|
+
data.tar.gz: d51685be014bc1f9629f0477acfc4cae0193b6b35037008ae8e2baf05e6ff54ee708f62854d08f25a5b16af7350e8c001868b4ac49f0394eded700da9f1229e4
|
data/.gitignore
CHANGED
data/exe/puppet_ec2_enc
ADDED
data/lib/puppet_ec2_enc.rb
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
require "puppet_ec2_enc/version"
|
2
|
+
require "puppet_ec2_enc/instance"
|
2
3
|
require "puppet_ec2_enc/metadata"
|
3
4
|
require "puppet_ec2_enc/ec2tags"
|
4
5
|
require "puppet_ec2_enc/enc"
|
5
6
|
|
6
7
|
module PuppetEc2Enc
|
7
|
-
def self.generate
|
8
|
-
|
9
|
-
|
10
|
-
ec2tags = PuppetEc2Enc::EC2Tags.new(
|
8
|
+
def self.generate(fqdn)
|
9
|
+
client = PuppetEc2Enc::Instance.client
|
10
|
+
instance = client.by_private_dns(fqdn)
|
11
|
+
ec2tags = PuppetEc2Enc::EC2Tags.new(instance: instance)
|
11
12
|
tags = ec2tags.tags
|
12
13
|
role = tags.fetch('puppet_role')
|
13
14
|
environment = tags.fetch('puppet_env')
|
@@ -2,12 +2,10 @@ require 'aws-sdk'
|
|
2
2
|
|
3
3
|
module PuppetEc2Enc
|
4
4
|
class EC2Tags
|
5
|
-
attr_accessor :
|
5
|
+
attr_accessor :instance
|
6
6
|
|
7
7
|
def initialize(opts = {})
|
8
|
-
@
|
9
|
-
@region = opts[:region] if opts[:region]
|
10
|
-
@ec2 = Aws::EC2::Resource.new(region: @region)
|
8
|
+
@instance = opts[:instance] if opts[:instance]
|
11
9
|
end
|
12
10
|
|
13
11
|
def tags
|
@@ -17,11 +15,5 @@ module PuppetEc2Enc
|
|
17
15
|
end
|
18
16
|
tags
|
19
17
|
end
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def instance
|
24
|
-
ec2.instance(instance_id)
|
25
|
-
end
|
26
18
|
end
|
27
19
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module PuppetEc2Enc
|
2
|
+
class Instance
|
3
|
+
attr_accessor :ec2
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@ec2 = Aws::EC2::Client.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.client
|
10
|
+
self.new
|
11
|
+
end
|
12
|
+
|
13
|
+
def by_private_dns(fqdn)
|
14
|
+
filter_hash = {
|
15
|
+
name: 'private-dns-name',
|
16
|
+
values: [fqdn]
|
17
|
+
}
|
18
|
+
|
19
|
+
reservations = filtered_search(filter_hash)
|
20
|
+
|
21
|
+
raise RuntimeError.new(
|
22
|
+
"Did not find EC2 instance named #{fqdn}!"
|
23
|
+
) if reservations.nil?
|
24
|
+
|
25
|
+
raise RuntimeError.new(
|
26
|
+
"Somehow found more than one EC2 instance named #{fqdn}!"
|
27
|
+
) if reservations.count > 1
|
28
|
+
|
29
|
+
return reservations[0].instances[0]
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def filtered_search(filter_hash = {})
|
35
|
+
result = ec2.describe_instances({
|
36
|
+
filters: [
|
37
|
+
filter_hash
|
38
|
+
]
|
39
|
+
})
|
40
|
+
|
41
|
+
return nil if result.reservations.count == 0
|
42
|
+
return result.reservations
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/puppet_ec2_enc.gemspec
CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Eric Olsen"]
|
10
10
|
spec.email = ["eric@ericolsen.net"]
|
11
11
|
|
12
|
-
spec.summary = %q{ENC for
|
13
|
-
spec.description = %q{ENC for
|
12
|
+
spec.summary = %q{ENC for Puppet Running on EC2}
|
13
|
+
spec.description = %q{ENC for Puppet Running on EC2}
|
14
14
|
spec.homepage = "https://github.com/eoly/puppet_ec2_enc"
|
15
15
|
|
16
16
|
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet_ec2_enc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Olsen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,11 +66,11 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '2'
|
69
|
-
description: ENC for
|
69
|
+
description: ENC for Puppet Running on EC2
|
70
70
|
email:
|
71
71
|
- eric@ericolsen.net
|
72
72
|
executables:
|
73
|
-
- puppet_ec2_enc
|
73
|
+
- puppet_ec2_enc
|
74
74
|
extensions: []
|
75
75
|
extra_rdoc_files: []
|
76
76
|
files:
|
@@ -80,10 +80,11 @@ files:
|
|
80
80
|
- Rakefile
|
81
81
|
- bin/console
|
82
82
|
- bin/setup
|
83
|
-
- exe/puppet_ec2_enc
|
83
|
+
- exe/puppet_ec2_enc
|
84
84
|
- lib/puppet_ec2_enc.rb
|
85
85
|
- lib/puppet_ec2_enc/ec2tags.rb
|
86
86
|
- lib/puppet_ec2_enc/enc.rb
|
87
|
+
- lib/puppet_ec2_enc/instance.rb
|
87
88
|
- lib/puppet_ec2_enc/metadata.rb
|
88
89
|
- lib/puppet_ec2_enc/version.rb
|
89
90
|
- puppet_ec2_enc.gemspec
|
@@ -107,8 +108,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
108
|
version: '0'
|
108
109
|
requirements: []
|
109
110
|
rubyforge_project:
|
110
|
-
rubygems_version: 2.5.
|
111
|
+
rubygems_version: 2.5.2
|
111
112
|
signing_key:
|
112
113
|
specification_version: 4
|
113
|
-
summary: ENC for
|
114
|
+
summary: ENC for Puppet Running on EC2
|
114
115
|
test_files: []
|