veronic 0.0.5 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'chef'
4
+ gem 'knife-ec2'
5
+ gem 'route53'
6
+ gem 'aws-sdk'
data/bin/veronic CHANGED
@@ -114,7 +114,6 @@ when "stop"
114
114
  Veronic::Deployer.new(options).stop
115
115
  when "start"
116
116
  Veronic::Deployer.new(options).start
117
- Veronic::Deployer.new(options).update_instance_dns
118
117
  when "list"
119
118
  Veronic::Deployer.new(options).instances_list
120
119
  else
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_zone_url, :dnsprovider_zone_name, :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
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'
@@ -11,11 +11,10 @@ module Veronic
11
11
  @configprovider = :chefserver
12
12
  @dnsprovider_access_key_id = options[:dnsprovider_access_key_id] || config_from_file['dnsprovider_access_key_id']
13
13
  @dnsprovider_secret_access_key = options[:dnsprovider_secret_access_key] || config_from_file['dnsprovider_secret_access_key']
14
+ @dnsprovider_zones = options[:dnsprovider_zones] || config_from_file['dnsprovider_zones']
14
15
  @cloudprovider_access_key_id = options[:cloudprovider_access_key_id] || config_from_file['cloudprovider_access_key_id']
15
16
  @cloudprovider_secret_access_key = options[:cloudprovider_secret_access_key] || config_from_file['cloudprovider_secret_access_key']
16
17
  @cloudprovider_images_owner_id = options[:cloudprovider_images_owner_id] || config_from_file['cloudprovider_images_owner_id']
17
- @dnsprovider_zone_url = options[:dnsprovider_zone_url] || config_from_file['dnsprovider_zone_url']
18
- @dnsprovider_zone_name = options[:dnsprovider_zone_name] || config_from_file['dnsprovider_zone_name']
19
18
  @region = options[:region] || config_from_file['region']
20
19
  @availability_zone = options[:availability_zone] || config_from_file['availability_zone']
21
20
  @aws_ssh_key_id = options[:aws_ssh_key_id] || config_from_file['aws_ssh_key_id']
@@ -13,7 +13,7 @@ class DnsProvider
13
13
  DNSPROVIDERS[@config[:dnsprovider]].new(@config)
14
14
  end
15
15
 
16
- def zone
17
- @dnsprovider.zone
16
+ def zone(zone_name, zone_url)
17
+ @dnsprovider.zone(zone_name, zone_url)
18
18
  end
19
19
  end
@@ -8,18 +8,21 @@ 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[:dnsprovider_zone_name] || '' + '.'
11
+ @zone_name = config[:dnsprovider_zone_name]
12
12
  @zone_url = config[:dnsprovider_zone_url]
13
13
  @r53 = r53
14
- @zone = zone
15
14
  end
16
15
 
17
16
  def r53
18
17
  Route53::Connection.new(@access_key_id, @secret_access_key)
19
18
  end
20
19
 
21
- def zone
22
- Provider::R53::Zone.new(@r53, @zone_name, @zone_url) rescue puts 'Bad DNS settings'
20
+ def zone(zone_name, zone_url)
21
+ begin
22
+ Provider::R53::Zone.new(@r53, zone_name, zone_url)
23
+ rescue
24
+ puts 'Bad DNS settings'
25
+ end
23
26
  end
24
27
 
25
28
  end
@@ -8,7 +8,6 @@ module Provider
8
8
  @values = values
9
9
  @type = type
10
10
  @ttl = ttl
11
- @update = wait_set
12
11
  end
13
12
 
14
13
  def get
@@ -6,7 +6,7 @@ module Provider
6
6
  @zone_name = zone_name
7
7
  @zone_url = zone_url
8
8
  @r53 = r53
9
- @zone = zone
9
+ @zone = zone
10
10
  end
11
11
 
12
12
  def record
@@ -18,7 +18,7 @@ module Provider
18
18
  end
19
19
 
20
20
  def zone
21
- zone = Route53::Zone.new(@zone_name, @zone_url, @r53)
21
+ Route53::Zone.new(@zone_name, @zone_url, @r53)
22
22
  end
23
23
 
24
24
  end
data/lib/veronic.rb CHANGED
@@ -7,11 +7,7 @@ module Veronic
7
7
  class Deployer
8
8
 
9
9
  def initialize(options={})
10
- @config = config(options)
11
- @config_hash = @config.to_hash
12
- @role = @config_hash[:role]
13
- @environment = @config_hash[:environment]
14
- @deploy_cmd = @config_hash[:deploy_cmd]
10
+ @config = config(options)
15
11
  end
16
12
 
17
13
  def config
@@ -22,16 +18,20 @@ module Veronic
22
18
  @config || Veronic::Config.new(options)
23
19
  end
24
20
 
21
+ def config_hash
22
+ @config.to_hash
23
+ end
24
+
25
25
  def configprovider
26
- ConfigProvider.new(@config_hash)
26
+ ConfigProvider.new(config_hash)
27
27
  end
28
28
 
29
29
  def dnsprovider
30
- DnsProvider.new(@config_hash)
30
+ DnsProvider.new(config_hash)
31
31
  end
32
32
 
33
33
  def cloudprovider
34
- CloudProvider.new(@config_hash)
34
+ CloudProvider.new(config_hash)
35
35
  end
36
36
 
37
37
  def create
@@ -91,9 +91,13 @@ module Veronic
91
91
  end
92
92
 
93
93
  def update_instance_dns
94
- @dns_array.each do |dns|
94
+ config_hash[:dnsprovider_zones].each do |z|
95
+ zone_name = z['zone_name']
96
+ zone_url = z['zone_url']
97
+ dns = "*.#{config_hash[:name]}.#{zone_name}"
95
98
  puts "Setting DNS #{dns} ..."
96
- dnsprovider.zone.record.new(dnsprovider.zone, dns, [cloudprovider.instance.public_ip_address], "A", "10")
99
+ zone = dnsprovider.zone(zone_name, zone_url)
100
+ record = zone.record.new(zone, dns, [cloudprovider.instance.public_ip_address], "A", "10")
97
101
  puts "DNS #{dns} updated"
98
102
  end
99
103
  end
data/veronic.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'veronic'
3
- s.version = '0.0.5'
3
+ s.version = '0.0.7'
4
4
  s.date = '2013-04-05'
5
5
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
6
6
  s.summary = "Veronic, deux qui la tiennent trois qui la niquent"
@@ -10,4 +10,8 @@ Gem::Specification.new do |s|
10
10
  s.files = `git ls-files`.split("\n")
11
11
  s.require_paths = ["lib"]
12
12
  s.homepage = 'http://github.com/GabKlein/veronic'
13
+ s.add_dependency('chef')
14
+ s.add_dependency('knife-ec2')
15
+ s.add_dependency('aws-sdk')
16
+ s.add_dependency('route53')
13
17
  end
data/veronic.yml CHANGED
@@ -1,10 +1,9 @@
1
1
  dnsprovider_access_key_id:
2
2
  dnsprovider_secret_access_key:
3
+ dnsprovider_zones:
3
4
  cloudprovider_access_key_id:
4
5
  cloudprovider_secret_access_key:
5
6
  cloudprovider_images_owner_id:
6
- dnsprovider_zone_url:
7
- dnsprovider_zone_name:
8
7
  region:
9
8
  availability_zone:
10
9
  aws_ssh_key_id:
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: veronic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,71 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
  date: 2013-04-05 00:00:00.000000000 Z
13
- dependencies: []
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: chef
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: knife-ec2
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: aws-sdk
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: route53
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
14
78
  description: A simple cloud deployer
15
79
  email: gabriel.klein.fr@gmail.com
16
80
  executables:
@@ -19,6 +83,7 @@ extensions: []
19
83
  extra_rdoc_files: []
20
84
  files:
21
85
  - .gitignore
86
+ - Gemfile
22
87
  - README.md
23
88
  - bin/veronic
24
89
  - lib/config/config.rb