aws-kicker 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NDhlOWQ3YzllOTdlZTQzNGI1YWQyMjkyYzY1ZDA1ZjE5OTg2NjU3Yw==
4
+ YTRkMGFhZGQzY2QxYWY4NTU2Nzg0ZTdhNDFhYjJkMzMwOGUwOThmZQ==
5
5
  data.tar.gz: !binary |-
6
- MDk3ZWExMGE3MzlmYTA4MWU0NzlkODQ5YzdlNDA3MTQzOWExODAxZQ==
6
+ NDY1MTAyM2UxNGJmM2EyZGI2ZGU2YzQzYjhmZDc3MWM2MjM3YTVjMw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NDFkZTY2ZjY4NDljNDkxZDNlZjliMWY4ODFiZTQwMDk1NjE1YmU1MDI4NWZi
10
- MjVmNTEyNTZjYWNmNjc4MmYzNzU3NjNmYzRlNTEwNjYyM2Y1ZDFiYjk0NWMx
11
- MTNhNzQ0NTQ4NzA0ZjYwMTczZGQ3MjlhOWQ0YTQxMTc2NDdjZjU=
9
+ M2ZiY2IyN2YwMzVjNzc1Zjg3MTZmZGNmNTg0MjRkYjhlMWI3NjQwMTUzMTZl
10
+ YTRkZTZjZDZjMTQ3Y2M0MzMxN2M3M2M5Y2ViMDUxMjFmODJmZWJjOGViMTk2
11
+ NmRhOTBmYmU0MjNkZTFhMjk5OWIzYzA4ZmY0ZGQxMjc3MGM0M2M=
12
12
  data.tar.gz: !binary |-
13
- ZWJmNjE3ZTNhOTRmODY4MjFmNmE0Y2M0NTA1ZjllMGUwMjBkMGMxZDIwYWI2
14
- YjQ4ODAzYjFhNDg1MzA4YWFjZjBhMDRiOTI2NTg5OTY2ZGY3NjcwYjc1OWU1
15
- MDc5MjYzZDY5NGIwYTE2MDM2M2FjMDQ1YmRiZGU4NzMxYTRkYzU=
13
+ NDYzYWFmYzE0NWZiYjdiOTQ5NDg0MmJmZDQ1YTVhZGVjZDliZjU5ZmI5N2Y0
14
+ MjM0MjA5MzI5MGMwYmUxNzlhY2ZiNjA2ZjNlYjY5OTVlNWYyZDkxMzJhMWM1
15
+ YTg2MDM1Yjk3NzcyMzM0YTBhZmVjYjdmNTc1NDcwNzM5MjhjZWU=
@@ -25,8 +25,8 @@ The guiding principle is that your Stackfile should be shareable & re-useable by
25
25
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
26
26
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
27
27
  gem.require_paths = ["lib"]
28
- gem.add_development_dependency('rdoc', '~> 0')
29
- gem.add_development_dependency('aruba', '~> 0')
28
+ gem.add_development_dependency('rdoc', '~> 4.2')
29
+ gem.add_development_dependency('aruba', '~> 0.6')
30
30
  gem.add_development_dependency('rake', '~> 0.9.2')
31
31
  gem.add_development_dependency('gem-release', '~> 0.7')
32
32
  gem.add_dependency('methadone', '~> 1.2')
@@ -1,5 +1,5 @@
1
1
  module Aws
2
2
  module Kicker
3
- VERSION = "0.0.6"
3
+ VERSION = "0.0.7"
4
4
  end
5
5
  end
@@ -33,6 +33,7 @@ module Stack
33
33
 
34
34
  config[:find_file_paths] = Array.new if config[:find_file_paths].nil?
35
35
  config[:mime_encode_user_data] = true if config[:mime_encode_user_data].nil?
36
+ config[:maintain_dns] = true if config[:maintain_dns].nil?
36
37
 
37
38
  # build out the full config for each node, supplying defaults from the
38
39
  # global config if explicitly supplied
@@ -76,68 +77,69 @@ module Stack
76
77
  fqdn = role.to_s + '.' + config[:dns_domain]
77
78
 
78
79
  if !running_instances[fqdn].nil?
79
- puts "Skipping #{fqdn} as it already exists"
80
- next
81
- end
82
-
83
- # Ubuntu 8.04/Hardy doesn't do full cloud-init, so we have to script setting the hostname
84
- libdir = File.realpath(@@gemhome + '/lib')
85
-
86
- bootstrap_abs = Stack.find_file(config, config[:node_details][fqdn][:bootstrap])
87
- cloud_config_yaml_abs = Stack.find_file(config, config[:node_details][fqdn][:cloud_config_yaml])
88
-
89
- if config[:mime_encode_user_data]
90
- Logger.debug "mime encoding user-data..."
91
- multipart_cmd = "#{libdir}/write-mime-multipart #{bootstrap_abs} #{cloud_config_yaml_abs}"
92
- user_data = `#{multipart_cmd}`
80
+ Logger.info "Skipping creation od #{fqdn} instance as it already exists"
81
+ server = running_instances[fqdn]
93
82
  else
94
- # Ubuntu Hardy seems to struggle with some mime-encoded user-data
95
- # so allow the user to forse submitting user-data un-mimed,
96
- # in which case we can only pass one file & it must be the bootstrap script
97
- Logger.debug "mime encoding user-data disabled, only sending the bootstrap script"
98
- user_data = File.read(bootstrap_abs)
99
- end
83
+ # Ubuntu 8.04/Hardy doesn't do full cloud-init, so we have to script setting the hostname
84
+ libdir = File.realpath(@@gemhome + '/lib')
85
+
86
+ bootstrap_abs = Stack.find_file(config, config[:node_details][fqdn][:bootstrap])
87
+ cloud_config_yaml_abs = Stack.find_file(config, config[:node_details][fqdn][:cloud_config_yaml])
88
+
89
+ if config[:mime_encode_user_data]
90
+ Logger.debug "mime encoding user-data..."
91
+ multipart_cmd = "#{libdir}/write-mime-multipart #{bootstrap_abs} #{cloud_config_yaml_abs}"
92
+ user_data = `#{multipart_cmd}`
93
+ else
94
+ # Ubuntu Hardy seems to struggle with some mime-encoded user-data
95
+ # so allow the user to forse submitting user-data un-mimed,
96
+ # in which case we can only pass one file & it must be the bootstrap script
97
+ Logger.debug "mime encoding user-data disabled, only sending the bootstrap script"
98
+ user_data = File.read(bootstrap_abs)
99
+ end
100
100
 
101
- user_data.gsub!(/rentpro-unconfigured/, hostname)
102
- user_data.gsub!(/rentpro-stage.local/, config[:dns_domain])
103
-
104
-
105
- # pp multipart
106
- #
107
- puts "Bootstraping new instance - #{fqdn}, in #{config[:availability_zone]}, flavor #{config[:node_details][fqdn][:flavor_id]}, image_id #{config[:image_id]}"
108
- server = connection.servers.create({
109
- :name => fqdn,
110
- :hostname => fqdn,
111
- :availability_zone => config[:availability_zone],
112
- :flavor_id => config[:node_details][fqdn][:flavor_id],
113
- :image_id => config[:image_id],
114
- :key_name => config[:keypair],
115
- :user_data => user_data,
116
- :tags => { 'Name' => fqdn },
117
- })
118
-
119
- print "Waiting for instance to be ready..."
120
- server.wait_for { ready? }
121
- puts "#{role.to_s} is booted, #{server.public_ip_address}/#{server.private_ip_address}"
122
-
123
- if false
124
- # create/update the public & private DNS for this host
125
- Stack.update_dns(role.to_s + '-public.' + config[:dns_domain], server.public_ip_address, config)
126
- Stack.update_dns(role.to_s + '-private.' + config[:dns_domain], server.private_ip_address, config)
127
-
128
- # create the dns
129
- if (role_details[:publish_private_ip] == true && (!role_details[:publish_private_ip].nil?))
130
- ip_address = server.private_ip_address
131
- else
132
- ip_address = server.public_ip_address
133
- end
134
- Stack.update_dns(fqdn, ip_address, config)
135
- #
136
- # is this a wildcard DNS host, then claim the *.domain.net
137
- if (role_details[:dns_wildcard] == true && (!role_details[:dns_wildcard].nil?))
138
- wildcard = "*." + config[:dns_domain]
139
- Stack.update_dns(wildcard, ip_address, config)
101
+ user_data.gsub!(/rentpro-unconfigured/, hostname)
102
+ user_data.gsub!(/rentpro-stage.local/, config[:dns_domain])
103
+
104
+
105
+ # pp multipart
106
+ #
107
+ puts "Bootstraping new instance - #{fqdn}, in #{config[:availability_zone]}, flavor #{config[:node_details][fqdn][:flavor_id]}, image_id #{config[:image_id]}"
108
+ server = connection.servers.create({
109
+ :name => fqdn,
110
+ :hostname => fqdn,
111
+ :availability_zone => config[:availability_zone],
112
+ :flavor_id => config[:node_details][fqdn][:flavor_id],
113
+ :image_id => config[:image_id],
114
+ :key_name => config[:keypair],
115
+ :user_data => user_data,
116
+ :tags => { 'Name' => fqdn },
117
+ })
118
+
119
+ print "Waiting for instance to be ready..."
120
+ server.wait_for { ready? }
121
+ puts "#{role.to_s} is booted, #{server.public_ip_address}/#{server.private_ip_address}"
140
122
  end
123
+
124
+ if config[:maintain_dns]
125
+ Logger.info "Updating DNS for #{fqdn}"
126
+ # create/update the public & private DNS for this host
127
+ Stack.update_dns(role.to_s + '-public.' + config[:dns_domain], server.public_ip_address, config)
128
+ Stack.update_dns(role.to_s + '-private.' + config[:dns_domain], server.private_ip_address, config)
129
+
130
+ # create the dns
131
+ if (role_details[:publish_private_ip] == true && (!role_details[:publish_private_ip].nil?))
132
+ ip_address = server.private_ip_address
133
+ else
134
+ ip_address = server.public_ip_address
135
+ end
136
+ Stack.update_dns(fqdn, ip_address, config)
137
+ #
138
+ # is this a wildcard DNS host, then claim the *.domain.net
139
+ if (role_details[:dns_wildcard] == true && (!role_details[:dns_wildcard].nil?))
140
+ wildcard = "*." + config[:dns_domain]
141
+ Stack.update_dns(wildcard, ip_address, config)
142
+ end
141
143
  end
142
144
  end
143
145
  end
@@ -148,14 +150,15 @@ module Stack
148
150
  :aws_access_key_id => config[:aws_access_key_id],
149
151
  :aws_secret_access_key => config[:aws_secret_access_key] })
150
152
 
151
- # pp dns.get_hosted_zone(config[:dns_id])
152
-
153
- bmtw = dns.zones.get(config[:dns_id])
153
+ dns.get_hosted_zone(config[:dns_id])
154
+ bmtw = dns.zones.get(config[:dns_id])
154
155
 
155
156
  record = bmtw.records.get(fqdn)
156
157
  if record
158
+ Logger.info "Updating #{fqdn} with #{ip_address}"
157
159
  record.modify(:value => ip_address) if record
158
160
  else
161
+ Logger.info "Creating #{fqdn} with #{ip_address}"
159
162
  bmtw.records.create(:value => ip_address, :name => fqdn, :type => 'A')
160
163
  end
161
164
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-kicker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon McCartney
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '4.2'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '4.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: aruba
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '0.6'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ~>
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '0.6'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement