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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 66de548d7b6c1341448ca7ef411fba0eb1db1838
4
- data.tar.gz: acc3e3b4f17963c6905e17182d7762144166a330
3
+ metadata.gz: 60913d10ff8ae2d089a94e77315856b39e46daa9
4
+ data.tar.gz: 81246e7da702eee2d3a07c376c24bc109c669a0b
5
5
  SHA512:
6
- metadata.gz: 304633b6109bbaf756d036e989dfc65be71991ff9c5b68674faedb8467065fee2b57a8067231e2fee3528b2d5a3ad4f4fd7d81a4cc2e70385f42ff24f5784fd2
7
- data.tar.gz: 98f1a016479a9bc587a8df55cad1a72445799a6f05ed09b54acbfa588327a444b73052a1d729d6659424f8dcbd165c90d4c72635f9154dd252f7c66cae5b97a7
6
+ metadata.gz: 0aeda2ed057c932380f3270f87ed6607d63fe796f60d4947fc70777ff369fec9e9628ef647d11f6c1ab6fcbad8ac59021d57fa10aaad0918cce45d4f1a0022d3
7
+ data.tar.gz: d51685be014bc1f9629f0477acfc4cae0193b6b35037008ae8e2baf05e6ff54ee708f62854d08f25a5b16af7350e8c001868b4ac49f0394eded700da9f1229e4
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ /scratch/
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'puppet_ec2_enc'
4
+
5
+ raise ArgumentError.new(
6
+ 'Usage: puppet_ec2_enc <node>'
7
+ ) unless ARGV.count == 1
8
+
9
+ node = ARGV[0]
10
+
11
+ puts PuppetEc2Enc.generate(node)
@@ -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
- instance_id = PuppetEc2Enc::Metadata.instance_id
9
- region = PuppetEc2Enc::Metadata.region
10
- ec2tags = PuppetEc2Enc::EC2Tags.new(instance_id: instance_id, region: region)
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 :instance_id, :region, :ec2
5
+ attr_accessor :instance
6
6
 
7
7
  def initialize(opts = {})
8
- @instance_id = opts[:instance_id] if opts[:instance_id]
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
@@ -1,3 +1,3 @@
1
1
  module PuppetEc2Enc
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.2"
3
3
  end
@@ -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 Standalone Puppet Nodes Running on EC2}
13
- spec.description = %q{ENC for Standalone Puppet Nodes Running on EC2}
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.1.1
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: 2016-12-10 00:00:00.000000000 Z
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 Standalone Puppet Nodes Running on EC2
69
+ description: ENC for Puppet Running on EC2
70
70
  email:
71
71
  - eric@ericolsen.net
72
72
  executables:
73
- - puppet_ec2_enc.rb
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.rb
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.1
111
+ rubygems_version: 2.5.2
111
112
  signing_key:
112
113
  specification_version: 4
113
- summary: ENC for Standalone Puppet Nodes Running on EC2
114
+ summary: ENC for Puppet Running on EC2
114
115
  test_files: []
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'puppet_ec2_enc'
4
-
5
- puts PuppetEc2Enc.generate