veronic 0.0.5 → 0.0.7

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/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