builddog 0.0.1 → 0.0.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: 01ddccf468deadf7187248349a10a5932c2ef7f0
4
- data.tar.gz: 1f97888e22968e6d7164f9124c4e9c8bcb7d3b48
3
+ metadata.gz: f7a875bf080ee88f0442b371eb5c02c11dccd943
4
+ data.tar.gz: a1a6b9770b6a7ad41669f329227df47850460e00
5
5
  SHA512:
6
- metadata.gz: e3c0a56ccadf894639256c5631ca3bd9745baecfe94827534f9be9cbfd63d6b09c955b1a31f0c08c7d589e8c65f9e1f901d3935580cf52a1e01bd4eb7bc65b2c
7
- data.tar.gz: c467c8cd42878b2633b252afd94de0b147d11615f00decd233679614a7d673e87e9cdf6989a01c53ec6d46d270cf24d4f5681fcc3084be69d93f0303e320f30c
6
+ metadata.gz: cc0b9e4916098c282c6280aa8858173d145af37a850563705d91e32d936b1c26b612b204310aca8e6d9deb1455c4d36a06b6cc7c587def733bec63e515c5e1fa
7
+ data.tar.gz: ff5c27b3b152b7c6599bfdb2c59ca46a136c1d5f3e0b7088934c3de721b89c6172fbf928120ac7310ea6b9d2ede10d35c65502a51686a8d52edb82d8e3c5d5ff
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Builddog
2
2
 
3
- TODO: Write a gem description
3
+ Build tool to deploy servers ( baremetal or VM ) across datacenters
4
4
 
5
5
  ## Installation
6
6
 
@@ -20,7 +20,20 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- TODO: Write usage instructions here
23
+ ### vSphere:
24
+
25
+ **username/password on command line:**
26
+ ```
27
+ builddog --provider=vsphere --ip=vcenter.localhost --user=root --password=password --operation=vm_create --vm-name bdg_testvm1 --vm-cluster=bdg-vmcluster01 --vm-datastore=bdg_datastore01 --vm-pg=bdg-VMNetwork --datacenter=dbg
28
+ ```
29
+
30
+ **using profile:**
31
+ ```
32
+ builddog --provider=vsphere --ip=vcenter.localhost --profile=root --operation=vm_create --vm-name bdg_testvm1 --vm-cluster=bdg-vmcluster01 --vm-datastore=bdg_datastore01 --vm-pg=bdg-VMNetwork --datacenter=dbg
33
+ ```
34
+ ### AWS:
35
+
36
+ ### Open Stack:
24
37
 
25
38
  ## Contributing
26
39
 
data/builddog.gemspec CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
8
8
  spec.version = BuildDog::VERSION
9
9
  spec.authors = ["rboyapat"]
10
10
  spec.email = ["rboyapat@gmail.com"]
11
- spec.summary = %q{ruby library to deploy servers across datacenters}
11
+ spec.summary = %q{Build tool to deploy servers across datacenters}
12
12
  spec.description = %q{---}
13
13
  spec.homepage = "http://github.com/rboyapat/builddog"
14
14
  spec.license = "MIT"
@@ -20,4 +20,6 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.7"
22
22
  spec.add_development_dependency "rake", "~> 10.0"
23
+ spec.add_development_dependency "rbvmomi", "~>1.8.2"
24
+ spec.add_development_dependency "nokogiri"
23
25
  end
data/lib/builddog.rb CHANGED
@@ -1,43 +1,48 @@
1
+ require "yaml"
1
2
  require_relative "builddog/version"
2
3
  require_relative "builddog/trollop"
3
4
  require_relative "builddog/providers"
4
5
 
5
6
  module BuildDog
6
-
7
7
  def self.print
8
8
  puts "#{VERSION}"
9
9
  end
10
10
  end
11
11
 
12
-
13
-
14
12
  options = Trollop.options do
15
13
 
16
14
  banner <<-EOS
17
- Usage: builddog.rb -o vm_create --provisioner 10.0.0.1 -u admin -p password
18
- builddog.rb --operation vm_create --provisioner 10.0.0.1 --user admin --password password
15
+ Usage: builddog --provider=vsphere --ip=vcenter.localhost --profile=root --operation=vm_create --vm-name bdg_testvm1 --vm-cluster=bdg-vmcluster01 --vm-datastore=bdg_datastore01 --vm-pg=bdg-VMNetwork --datacenter=dbg
19
16
  EOS
20
17
 
21
- builddog_opt
18
+ server_provider_opt
19
+ vsphere_opt
22
20
  end
23
21
 
24
- ###
25
-
26
- Label1 = <<EOF
27
-
28
- Logic to check what and how many arguments are passed to program
29
-
30
- if options.length > 0
31
- open instance of class
32
-
33
- elsif File.open("buildog_credentials", "r")
34
-
35
- else
36
-
37
-
38
- fi
39
-
40
- EOF
41
- #####
22
+ case options[:provider]
23
+ when "vsphere"
24
+ if options[:user] == "none"
25
+ if File.exist? `ls #{options[:creds]}`.chomp!
26
+ cred_tree = YAML.load(File.open(`ls #{options[:creds]}`.chomp!, "r"))
27
+ options[:vsphere_user] = cred_tree[options[:profile]]["vsphere_user"]
28
+ options[:vsphere_password] = cred_tree[options[:profile]]["vsphere_password"]
29
+ else
30
+ puts "please populate the credentials in home dir to connect to the server providers"
31
+ end
32
+ else
33
+ options[:vsphere_user] = options[:user]
34
+ options[:vsphere_password] = options[:password]
35
+ end
36
+ when "aws"
37
+ options[:aws_access_key_id] = cred_tree[options[:profile]]["aws_access_key_id"]
38
+ options[:aws_secret_access_key] = cred_tree[options[:profile]]["aws_secret_access_key"]
39
+ when "openstack"
40
+ options[:openstack_access_key_id] = cred_tree[options[:profile]]["openstack_access_key_id"]
41
+ options[:openstack_secret_access_key] = cred_tree[options[:profile]]["openstack_secret_access_key"]
42
+ else
43
+ puts "Not a valid provider"
44
+ exit
45
+ end
46
+
42
47
 
43
48
  BuildDog.providers options
@@ -10,7 +10,9 @@ require_relative "vsphere/vm_clone"
10
10
 
11
11
  def vsphere options
12
12
 
13
- options[:host] = options[:controller]
13
+ options[:user] = options[:vsphere_user]
14
+ options[:password] = options[:vsphere_password]
15
+ options[:host] = options[:ip]
14
16
  options[:insecure] = true
15
17
 
16
18
  case options[:operation]
@@ -4,13 +4,18 @@ module Trollop
4
4
 
5
5
  class Parser
6
6
 
7
- def builddog_opt
8
- opt :provider, "Server Provider", :type => :string, :short => :none, :default => 'vsphere'
9
- opt :controller, "Server Provisioning System Controller", :type => :string, :short => :none, :default => 'none'
10
- opt :port, "Controller port", :type => :int, :short => :none, :default => 443
7
+ def server_provider_opt
8
+ opt :provider, "Server Provider Type", :type => :string, :short => :none, :default => 'vsphere'
9
+ opt :ip, "Server Provider IP | Hostname", :type => :string, :short => :none, :default => 'none'
10
+ opt :port, "Server Provider Port", :type => :int, :short => :none, :default => 443
11
+ opt :profile, "User Profile", :type => :string, :short => :none, :default => "default"
12
+ opt :creds, "Provider Credentials File", :type => :string, :short => :none, :default => "~/.bdg_credentials.yaml"
13
+ opt :inventory, "Datacenter Inventory File", :type => :string, :short => :none, :default => "~/.bdg_inventory.yaml"
14
+ end
15
+
16
+ def vsphere_opt
11
17
  opt :user, "Username", :type => :string, :short => 'u', :default => 'none'
12
18
  opt :password, "Password", :type => :string, :short => 'p', :default => 'none'
13
- opt :operation, "Operation", :type => :string, :short => 'o', :default => 'none'
14
19
  opt :vm_name, "VM name", :type => :string, :short => :none, :default => "bdg_testvm"
15
20
  opt :guest_id, "VM OS type", :type => :string, :short => :none, :default => "rhel6_64Guest"
16
21
  opt :vm_cpu, "VM No of vCPUs", :type => :int, :short => :none, :default => 1
@@ -27,12 +32,11 @@ module Trollop
27
32
  opt :vm_dns_servers, "VM DNS servers", :type => :string, :short => :none, :default => 'none'
28
33
  opt :clone_name, "VM Clone Source Name", :type => :string, :short => :none, :default => "bdg_cln"
29
34
  opt :template_name, "VM template Name", :type => :string, :short => :none, :default => "bdg_tmpt"
30
- opt :datacenter, "VM Datacenter", :type => :string, :short => :none, :default => "bdg"
31
- opt :inventory, "Datacenter Inventory File", :type => :string, :short => :none, :default => "~/.bdg_inventory.yaml"
32
- opt :credentials, "Provisioner Credentials File", :type => :string, :short => :none, :default => "~/.bdg_credentials.yaml"
33
35
  opt :vmlist, "VM Build List File", :type => :string, :short => :none, :default => "./bdg_vmlist"
36
+ opt :operation, "Operation", :type => :string, :short => 'o', :default => 'none'
37
+ opt :datacenter, "VM Datacenter", :type => :string, :short => :none, :default => "bdg"
34
38
  end
35
-
39
+
36
40
  end
37
41
 
38
42
  end
@@ -1,3 +1,3 @@
1
1
  module BuildDog
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: builddog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - rboyapat
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-11 00:00:00.000000000 Z
11
+ date: 2016-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,34 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rbvmomi
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.8.2
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.8.2
55
+ - !ruby/object:Gem::Dependency
56
+ name: nokogiri
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
41
69
  description: "---"
42
70
  email:
43
71
  - rboyapat@gmail.com
@@ -85,5 +113,5 @@ rubyforge_project:
85
113
  rubygems_version: 2.2.5
86
114
  signing_key:
87
115
  specification_version: 4
88
- summary: ruby library to deploy servers across datacenters
116
+ summary: Build tool to deploy servers across datacenters
89
117
  test_files: []