chef-provisioning-vsphere 0.6.0 → 0.7.0
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 447c1e20f65a8624c0321e979bd167d749bfdc99
|
4
|
+
data.tar.gz: 0d2642fb145e478ed4bb941463ac918eae3b5e3d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 819875ac593906e1d8570f823471d05747baa54ef9689086de8aee21cc093c7df87cee7835618590b8a585d87ba764028a7d96fc8e2f69559be8fceea4825d96
|
7
|
+
data.tar.gz: 702b9dcd0d2c953cd5034a03ae70e6706c48eb58af12076b8c10ba32e6b2fc5ee5debaa376081e664d7c2bb64f0504968b43d7670fc6247cec98b2d8431e89c5
|
data/README.md
CHANGED
@@ -93,7 +93,7 @@ This will use chef-zero and needs no chef server (only works for ssh). Note that
|
|
93
93
|
- `[:convergence_options][:install_sh_url]` - the bach script to install chef client on linux (defaults to latest)
|
94
94
|
- `[:customization_spec][:ipsettings][:ip]` static ip to assign to machine
|
95
95
|
- `[:customization_spec][:ipsettings][:subnetMask]` - subnet to use
|
96
|
-
- `[:customization_spec][:ipsettings][:gateway]` -
|
96
|
+
- `[:customization_spec][:ipsettings][:gateway]` - array of possible gateways to use (this will most often be an array of 1)
|
97
97
|
- `[:customization_spec][:ipsettings][:dnsServerList]` - array of DNS servers to use
|
98
98
|
- `[:customization_spec][:domain]` - domain to use (if not 'local' on a windows machine it will attempt to domain join)
|
99
99
|
- `[:customization_spec][:domainAdmin]` - domain admin account to use for domain join on windows (should be `{user name}`@`{domain}`)
|
@@ -180,6 +180,48 @@ knife cookbook upload my_cookbook
|
|
180
180
|
chef-client -o 'my_cookbook::provision' -c .chef/knife.rb
|
181
181
|
```
|
182
182
|
|
183
|
+
### Prefix all SSH commands with 'sudo ', for installing on hosts where options[:bootstrap_options][:ssh][:user] is not 'root'. The user must have 'NOPASSWD:ALL' in /etc/sudoers. This is compatible with chef-provisioning-fog functionality
|
184
|
+
|
185
|
+
```
|
186
|
+
chef_gem 'chef-provisioning-vsphere' do
|
187
|
+
action :install
|
188
|
+
compile_time true
|
189
|
+
end
|
190
|
+
|
191
|
+
require 'chef/provisioning/vsphere_driver'
|
192
|
+
|
193
|
+
with_vsphere_driver host: 'vcenter-host-name',
|
194
|
+
insecure: true,
|
195
|
+
user: 'you_user_name',
|
196
|
+
password: 'your_mothers_maiden_name'
|
197
|
+
|
198
|
+
with_machine_options :bootstrap_options => {
|
199
|
+
use_linked_clone: true,
|
200
|
+
num_cpus: 2,
|
201
|
+
memory_mb: 4096,
|
202
|
+
network_name: ["vlan_20_172.21.20"],
|
203
|
+
datacenter: 'datacenter_name',
|
204
|
+
resource_pool: 'cluster',
|
205
|
+
template_name: 'path to template',
|
206
|
+
customization_spec: {
|
207
|
+
ipsettings: {
|
208
|
+
dnsServerList: ['1.2.3.31','1.2.3.41']
|
209
|
+
},
|
210
|
+
:domain => 'local'
|
211
|
+
}
|
212
|
+
:ssh => {
|
213
|
+
:user => 'root',
|
214
|
+
:password => 'password',
|
215
|
+
:paranoid => false,
|
216
|
+
}
|
217
|
+
},
|
218
|
+
:sudo => true
|
219
|
+
|
220
|
+
machine "my_machine_name" do
|
221
|
+
run_list ['my_cookbook::default']
|
222
|
+
end
|
223
|
+
|
224
|
+
```
|
183
225
|
## Kitchen Driver
|
184
226
|
|
185
227
|
This chef-provisioning-driver comes with a test-kitchen driver. Here are example driver options you can add to your `kitchen.yml`.
|
@@ -379,7 +379,7 @@ module ChefProvisioningVsphere
|
|
379
379
|
if vm
|
380
380
|
action_handler.perform_action "Delete VM [#{vm.parent.name}/#{vm.name}]" do
|
381
381
|
begin
|
382
|
-
|
382
|
+
vsphere_helper.stop_vm(vm, machine_options[:stop_timeout])
|
383
383
|
vm.Destroy_Task.wait_for_completion
|
384
384
|
rescue RbVmomi::Fault => fault
|
385
385
|
raise fault unless fault.fault.class.wsdl_name == "ManagedObjectNotFound"
|
@@ -397,7 +397,7 @@ module ChefProvisioningVsphere
|
|
397
397
|
vm = vm_for(machine_spec)
|
398
398
|
if vm
|
399
399
|
action_handler.perform_action "Shutdown guest OS and power off VM [#{vm.parent.name}/#{vm.name}]" do
|
400
|
-
vsphere_helper.stop_vm(vm)
|
400
|
+
vsphere_helper.stop_vm(vm, machine_options[:stop_timeout])
|
401
401
|
end
|
402
402
|
end
|
403
403
|
end
|
@@ -638,7 +638,7 @@ module ChefProvisioningVsphere
|
|
638
638
|
host,
|
639
639
|
ssh_user,
|
640
640
|
options,
|
641
|
-
{},
|
641
|
+
@config[:machine_options][:sudo] ? {:prefix => 'sudo '} : {},
|
642
642
|
config
|
643
643
|
)
|
644
644
|
end
|
@@ -47,13 +47,6 @@ module ChefProvisioningVsphere
|
|
47
47
|
)
|
48
48
|
end
|
49
49
|
|
50
|
-
def vm_stopped?(vm)
|
51
|
-
return true if vm.nil?
|
52
|
-
state = vm.runtime.powerState
|
53
|
-
return false unless state == 'poweredOff'
|
54
|
-
return false
|
55
|
-
end
|
56
|
-
|
57
50
|
def start_vm(vm, wait_on_port = 22)
|
58
51
|
state = vm.runtime.powerState
|
59
52
|
unless state == 'poweredOn'
|
@@ -61,10 +54,15 @@ module ChefProvisioningVsphere
|
|
61
54
|
end
|
62
55
|
end
|
63
56
|
|
64
|
-
def stop_vm(vm)
|
57
|
+
def stop_vm(vm, timeout = 600)
|
58
|
+
start = Time.now.utc
|
65
59
|
begin
|
66
60
|
vm.ShutdownGuest
|
67
|
-
|
61
|
+
until (Time.now.utc - start) > timeout ||
|
62
|
+
vm.runtime.powerState == 'poweredOff' do
|
63
|
+
print '.'
|
64
|
+
sleep 2
|
65
|
+
end
|
68
66
|
rescue
|
69
67
|
vm.PowerOffVM_Task.wait_for_completion
|
70
68
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-provisioning-vsphere
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- CenturyLink Cloud
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rbvmomi
|