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 +4 -4
- data/README.md +15 -2
- data/builddog.gemspec +3 -1
- data/lib/builddog.rb +29 -24
- data/lib/builddog/providers/vsphere.rb +3 -1
- data/lib/builddog/trollop.rb +13 -9
- data/lib/builddog/version.rb +1 -1
- metadata +31 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7a875bf080ee88f0442b371eb5c02c11dccd943
|
4
|
+
data.tar.gz: a1a6b9770b6a7ad41669f329227df47850460e00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc0b9e4916098c282c6280aa8858173d145af37a850563705d91e32d936b1c26b612b204310aca8e6d9deb1455c4d36a06b6cc7c587def733bec63e515c5e1fa
|
7
|
+
data.tar.gz: ff5c27b3b152b7c6599bfdb2c59ca46a136c1d5f3e0b7088934c3de721b89c6172fbf928120ac7310ea6b9d2ede10d35c65502a51686a8d52edb82d8e3c5d5ff
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Builddog
|
2
2
|
|
3
|
-
|
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
|
-
|
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{
|
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.
|
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
|
-
|
18
|
+
server_provider_opt
|
19
|
+
vsphere_opt
|
22
20
|
end
|
23
21
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
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[:
|
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]
|
data/lib/builddog/trollop.rb
CHANGED
@@ -4,13 +4,18 @@ module Trollop
|
|
4
4
|
|
5
5
|
class Parser
|
6
6
|
|
7
|
-
def
|
8
|
-
opt :provider, "Server Provider", :type => :string, :short => :none, :default => 'vsphere'
|
9
|
-
opt :
|
10
|
-
opt :port, "
|
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
|
data/lib/builddog/version.rb
CHANGED
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.
|
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
|
+
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:
|
116
|
+
summary: Build tool to deploy servers across datacenters
|
89
117
|
test_files: []
|