veronic 0.0.7 → 0.0.8
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.
- data/lib/config/config.rb +1 -1
- data/lib/providers/chefserver/rest_request.rb +1 -1
- data/lib/providers/dnsprovider.rb +3 -2
- data/lib/providers/ec2/instance.rb +2 -0
- data/lib/providers/route53/r53.rb +6 -9
- data/lib/providers/route53/record.rb +9 -4
- data/lib/providers/route53/zone.rb +8 -21
- data/lib/veronic.rb +18 -9
- data/veronic.gemspec +1 -1
- metadata +1 -1
data/lib/config/config.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Veronic
|
2
2
|
class Config
|
3
|
-
attr_accessor :dnsprovider, :cloudprovider, :configprovider, :dnsprovider_access_key_id, :dnsprovider_secret_access_key, :cloudprovider_access_key_id, :cloudprovider_secret_access_key, :cloudprovider_images_owner_id, :dnsprovider_zones, :region, :availability_zone, :aws_ssh_key_id, :node_name, :client_key, :validation_client_name, :validation_key, :chef_server_url, :ssl_version, :identity_file, :branch, :environment, :ssh_user, :ssh_port, :role, :flavor, :security_groups, :deploy_cmd, :name, :image
|
3
|
+
attr_accessor :dnsprovider, :cloudprovider, :configprovider, :dnsprovider_access_key_id, :dnsprovider_secret_access_key, :cloudprovider_access_key_id, :cloudprovider_secret_access_key, :cloudprovider_images_owner_id, :dnsprovider_zones, :region, :availability_zone, :aws_ssh_key_id, :node_name, :client_key, :validation_client_name, :validation_key, :chef_server_url, :ssl_version, :identity_file, :branch, :environment, :ssh_user, :ssh_port, :role, :flavor, :security_groups, :deploy_cmd, :name, :image, :zone_name, :zone_url
|
4
4
|
|
5
5
|
def initialize(options={})
|
6
6
|
config_file = File.exists?('/etc/veronic/veronic.yml') ? '/etc/veronic/veronic.yml' : '../../' + File.dirname($0) + '/veronic.yml'
|
@@ -10,6 +10,7 @@ module Provider
|
|
10
10
|
|
11
11
|
def stop
|
12
12
|
print "Stopping instance #{@name}..."
|
13
|
+
@i = 0
|
13
14
|
@instance.stop if @instance.status == :running
|
14
15
|
while @instance.status != :stopped && @i < 40
|
15
16
|
print "." ; sleep 3 ; @i += 1 || 1
|
@@ -19,6 +20,7 @@ module Provider
|
|
19
20
|
|
20
21
|
def start
|
21
22
|
print "Starting instance #{@name}..."
|
23
|
+
@i = 0
|
22
24
|
@instance.start if @instance.status == :stopped && @i < 40
|
23
25
|
while @instance.status != :running
|
24
26
|
print "." ; sleep 3 ; @i += 1 || 1
|
@@ -8,22 +8,19 @@ module Provider
|
|
8
8
|
def initialize(config)
|
9
9
|
@access_key_id = config[:dnsprovider_access_key_id]
|
10
10
|
@secret_access_key = config[:dnsprovider_secret_access_key]
|
11
|
-
@zone_name = config[:
|
12
|
-
@zone_url = config[:
|
11
|
+
@zone_name = config[:zone_name]
|
12
|
+
@zone_url = config[:zone_url]
|
13
13
|
@r53 = r53
|
14
|
+
@zone = zone
|
14
15
|
end
|
15
16
|
|
16
17
|
def r53
|
17
18
|
Route53::Connection.new(@access_key_id, @secret_access_key)
|
18
19
|
end
|
19
20
|
|
20
|
-
def zone
|
21
|
-
|
22
|
-
Provider::R53::Zone.new(@r53, zone_name, zone_url)
|
23
|
-
rescue
|
24
|
-
puts 'Bad DNS settings'
|
25
|
-
end
|
21
|
+
def zone
|
22
|
+
Route53::Zone.new(@zone_name, @zone_url, @r53)
|
26
23
|
end
|
27
|
-
|
24
|
+
|
28
25
|
end
|
29
26
|
end
|
@@ -1,5 +1,5 @@
|
|
1
|
-
module
|
2
|
-
class
|
1
|
+
module Route53
|
2
|
+
class Zone
|
3
3
|
class Record
|
4
4
|
|
5
5
|
def initialize(zone, name, values=[], type, ttl)
|
@@ -36,14 +36,19 @@ module Provider
|
|
36
36
|
if self.exist?
|
37
37
|
record = self.get
|
38
38
|
new_record = Route53::DNSRecord.new(record.name, record.type, record.ttl, record.values, @zone)
|
39
|
-
action = "update"
|
40
39
|
record.update(@name, @type, @ttl, @values, @zone)
|
41
40
|
else
|
42
41
|
record = Route53::DNSRecord.new(@name, @type, @ttl, @values, @zone)
|
43
|
-
action = "create"
|
44
42
|
record.create
|
45
43
|
end
|
46
44
|
end
|
45
|
+
|
46
|
+
def delete
|
47
|
+
if self.exist?
|
48
|
+
record = Route53::DNSRecord.new(@name, @type, @ttl, @values, @zone)
|
49
|
+
record.delete
|
50
|
+
end
|
51
|
+
end
|
47
52
|
|
48
53
|
end
|
49
54
|
end
|
@@ -1,26 +1,13 @@
|
|
1
|
-
module
|
2
|
-
class
|
3
|
-
class Zone
|
1
|
+
module Route53
|
2
|
+
class Zone
|
4
3
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
@r53 = r53
|
9
|
-
@zone = zone
|
10
|
-
end
|
11
|
-
|
12
|
-
def record
|
13
|
-
Provider::R53::Zone::Record
|
14
|
-
end
|
15
|
-
|
16
|
-
def records
|
17
|
-
@zone.get_records
|
18
|
-
end
|
19
|
-
|
20
|
-
def zone
|
21
|
-
Route53::Zone.new(@zone_name, @zone_url, @r53)
|
22
|
-
end
|
4
|
+
def record(name, values=[], type, ttl)
|
5
|
+
Route53::Zone::Record.new(self, name, values, type, ttl)
|
6
|
+
end
|
23
7
|
|
8
|
+
def records
|
9
|
+
self.get_records
|
24
10
|
end
|
11
|
+
|
25
12
|
end
|
26
13
|
end
|
data/lib/veronic.rb
CHANGED
@@ -2,6 +2,7 @@ require_relative 'config/config'
|
|
2
2
|
require_relative 'providers/cloudprovider'
|
3
3
|
require_relative 'providers/dnsprovider'
|
4
4
|
require_relative 'providers/configprovider'
|
5
|
+
require 'pp'
|
5
6
|
|
6
7
|
module Veronic
|
7
8
|
class Deployer
|
@@ -70,11 +71,20 @@ module Veronic
|
|
70
71
|
end
|
71
72
|
|
72
73
|
def destroy
|
74
|
+
config_hash[:dnsprovider_zones].each do |z|
|
75
|
+
@config.zone_name = z['zone_name']
|
76
|
+
@config.zone_url = z['zone_url']
|
77
|
+
dns = "#{config_hash[:name]}.#{z['zone_name']}"
|
78
|
+
puts "Setting DNS #{dns} ..."
|
79
|
+
record = dnsprovider.zone.record(dns, [cloudprovider.instance.public_ip_address], "A", "10").delete
|
80
|
+
puts "DNS #{dns} deleted"
|
81
|
+
end
|
73
82
|
if cloudprovider.instance.exist?
|
74
83
|
configprovider.instance.destroy([cloudprovider.instance.id])
|
75
84
|
else
|
76
85
|
configprovider.instance.destroy([])
|
77
86
|
end
|
87
|
+
|
78
88
|
end
|
79
89
|
|
80
90
|
def deploy
|
@@ -92,13 +102,12 @@ module Veronic
|
|
92
102
|
|
93
103
|
def update_instance_dns
|
94
104
|
config_hash[:dnsprovider_zones].each do |z|
|
95
|
-
zone_name = z['zone_name']
|
96
|
-
zone_url = z['zone_url']
|
97
|
-
dns
|
98
|
-
puts
|
99
|
-
|
100
|
-
|
101
|
-
puts "DNS #{dns} updated"
|
105
|
+
@config.zone_name = z['zone_name']
|
106
|
+
@config.zone_url = z['zone_url']
|
107
|
+
dns = "#{config_hash[:name]}.#{z['zone_name']}"
|
108
|
+
puts "Setting DNS #{dns} ..."
|
109
|
+
record = dnsprovider.zone.record(dns, [cloudprovider.instance.public_ip_address], "A", "10").wait_set
|
110
|
+
puts "DNS #{dns} updated"
|
102
111
|
end
|
103
112
|
end
|
104
113
|
|
@@ -118,10 +127,10 @@ module Veronic
|
|
118
127
|
def bootstrap
|
119
128
|
@config.image = cloudprovider.image.id
|
120
129
|
if cloudprovider.instance.status == :running
|
121
|
-
|
130
|
+
configprovider.instance.bootstrap
|
122
131
|
elsif cloudprovider.instance.status == :stopped
|
123
132
|
start
|
124
|
-
|
133
|
+
configprovider.instance.bootstrap
|
125
134
|
elsif cloudprovider.instance.exist? == false
|
126
135
|
configprovider.instance.bootstrap
|
127
136
|
configprovider.instance.set_role
|
data/veronic.gemspec
CHANGED