vagrant-vmware-esxi 1.1.7 → 1.2.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: c209baac764ee4612a55315a878c1f30d26ed331
4
- data.tar.gz: 7731bdc92a7bff3baf284c36717a01fe70c1195b
3
+ metadata.gz: '0269af4374c1d658023f26ddfae4e1a053ca787c'
4
+ data.tar.gz: 4781afa7b1c5e2aca3266435da76fb36f7d39488
5
5
  SHA512:
6
- metadata.gz: f98c2cb77a3a6d3343b244e1dad828ef97849d97917718ce9c56918238b0a0a4fd9f81ec3f1401bcb539a92f0e792b880b0679ac40c8b460179b68e11ec85685
7
- data.tar.gz: d3f67cd7ad02ea533080fb2267324af6e018ff858437f6d5ff1516e13705ee2522587b21ddbd43ba2f735356d56935701144f26108f69590122ab6d748037181
6
+ metadata.gz: f6a21947c2f23be0a15109090112cd84d22c6ae18b8a2e3334fba8e659947acfcb13c5dd582da3c09f33bde4d2e668e63778b1589bd21abaf1081a1159ca936e
7
+ data.tar.gz: 0b701c40c221893d32381197c51d7b2d8a8fd32075dc3ecee13350304db64446407fb0364a29e1384accf53d93ecfebbc41cbf8eb4b5c6ce68b18cbcda0cbf57
data/README.md CHANGED
@@ -23,11 +23,12 @@ Features and Compatibility
23
23
 
24
24
  Requirements
25
25
  ------------
26
- 1. This plugin requires ovftool from VMware. Download from VMware website.
26
+ 1. This is a vagrant plugin, so you need vagrant installed... :-)
27
+ 2. This plugin requires ovftool from VMware. Download from VMware website.
27
28
  >https://www.vmware.com/support/developer/ovf/
28
- 2. You MUST enable ssh access on your ESXi hypervisor.
29
+ 3. You MUST enable ssh access on your ESXi hypervisor.
29
30
  * Google 'How to enable ssh access on esxi'
30
- 3. The boxes must have open-vm-tools or vmware-tools installed to properly transition to the "running" state.
31
+ 4. The boxes must have open-vm-tools or vmware-tools installed to properly transition to the "running" state.
31
32
 
32
33
  Why this plugin?
33
34
  ----------------
@@ -114,7 +115,11 @@ Vagrant.configure("2") do |config|
114
115
  # HIGHLY RECOMMENDED! Virtual Network
115
116
  # You should specify a Virtual Network!
116
117
  # The default is to use the first found!
117
- esxi.virtual_network = "vmnet_example"
118
+ # You can specify up to 4 virtual networks using an array
119
+ # format. Note that Vagrant only looks at the first
120
+ # interface for an IP address.
121
+ #esxi.virtual_network = "vmnet_example"
122
+ #esxi.virtual_network = ["vmnet1","vmnet2","vmnet3","vmnet4"]
118
123
 
119
124
  # OPTIONAL. Specify a Disk Store
120
125
  # The Default is to use the least used Disk Store.
@@ -123,7 +128,8 @@ Vagrant.configure("2") do |config|
123
128
  # OPTIONAL. Guest VM name to be created/used.
124
129
  # The Default will be automatically generated
125
130
  # and will be based on the vmname_prefix,
126
- # hostname, username, path...
131
+ # hostname, username, path. Otherwise you
132
+ # can set a fixed guest VM name here.
127
133
  #esxi.vmname = "Custom-Guest-VM_Name"
128
134
 
129
135
  # OPTIONAL. When automatically naming VMs, use
@@ -144,8 +150,9 @@ Vagrant.configure("2") do |config|
144
150
  # The default is to create VMs in the "root". You can
145
151
  # specify a resource pool here to partition memory and
146
152
  # cpu usage away from other systems on your esxi host.
147
- # The resource pool must already exist and be configured.
148
- # Vagrant will NOT create it for you.
153
+ # The resource pool must already exist and have the
154
+ # proper permissions set.
155
+ # Vagrant will NOT create a Resource pool it for you.
149
156
  #esxi.resource_pool = "/Vagrant"
150
157
 
151
158
  # DANGEROUS! Allow Overwrite
@@ -185,3 +192,9 @@ Known issues with vmware_esxi
185
192
  * In general I find NFS synced folders pretty "flakey" anyways...
186
193
  * Multi machines may not provision one VM if the boxes are different.
187
194
  * I found this problem with libvirt also, so I'm assuming it's a vagrant problem...
195
+
196
+
197
+ Feedback please!
198
+ ----------------
199
+ * To help improve this plugin, I'm requesting that you provide some feedback.
200
+ * https://goo.gl/forms/tY14mE77HJvhNvjj1
@@ -67,7 +67,9 @@ Vagrant.configure("2") do |config|
67
67
  # HIGHLY RECOMMENDED! Virtual Network
68
68
  # You should specify a Virtual Network!
69
69
  # The default is to use the first found!
70
- esxi.virtual_network = "vmnet_example"
70
+ # You can specify up to 4 virtual networks using an array format.
71
+ #esxi.virtual_network = "vmnet_example"
72
+ #esxi.virtual_network = ["vmnet1","vmnet2","vmnet3","vmnet4"]
71
73
 
72
74
  # OPTIONAL. Specify a Disk Store
73
75
  # The Default is to use the least used Disk Store.
@@ -25,7 +25,7 @@ Vagrant.configure("2") do |config|
25
25
  esxi.esxi_password = nil
26
26
  #esxi.esxi_private_keys = []
27
27
  #esxi.esxi_hostport = 22
28
- esxi.virtual_network = "vmnet_example"
28
+ #esxi.virtual_network = "vmnet_example"
29
29
  #esxi.vm_disk_store = "DS_001"
30
30
  #esxi.vmname_prefix = "V-"
31
31
  #esxi.memsize = "2048"
@@ -131,25 +131,30 @@ module VagrantPlugins
131
131
  "#{r.stderr}"
132
132
  end
133
133
 
134
+ guestvm_network = []
135
+ counter = 0
134
136
  if config.virtual_network.nil?
135
- guestvm_network = availnetworks.first
136
- elsif availnetworks.include? config.virtual_network
137
- guestvm_network = config.virtual_network
137
+ guestvm_network[0] = availnetworks.first
138
+ env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
139
+ message: 'WARNING : '\
140
+ "config.virtual_network not "\
141
+ "set, using #{availnetworks.first}")
138
142
  else
139
- guestvm_network = availnetworks.first
140
- end
141
-
142
- if guestvm_network != config.virtual_network
143
- if config.virtual_network.nil?
144
- env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
145
- message: 'WARNING : '\
146
- "config.virtual_network not "\
147
- "set, using #{availnetworks.first}")
148
- else
149
- env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
150
- message: 'WARNING : '\
151
- "#{config.virtual_network} not "\
152
- "found, using #{availnetworks.first}")
143
+ networkID = 0
144
+ for aVirtNet in Array(config.virtual_network) do
145
+ if availnetworks.include? aVirtNet
146
+ guestvm_network << aVirtNet
147
+ else
148
+ guestvm_network << availnetworks.first
149
+ env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
150
+ message: 'WARNING : '\
151
+ "#{aVirtNet} not "\
152
+ "found, using #{availnetworks.first}")
153
+ end
154
+ networkID += 1
155
+ if networkID >= 4
156
+ break
157
+ end
153
158
  end
154
159
  end
155
160
 
@@ -176,14 +181,12 @@ module VagrantPlugins
176
181
  new_vmx_contents << "memsize = \"#{desired_memsize}\"\n"
177
182
  elsif line.match(/^numvcpus =/i) && (!desired_numvcpus.nil?)
178
183
  new_vmx_contents << "numvcpus = \"#{desired_numvcpus}\"\n"
179
- elsif line.match(/^ethernet0.networkName =/i)
180
- new_vmx_contents << "ethernet0.networkName = \"#{guestvm_network}\"\n"
181
- elsif line.match(/^ethernet0.addressType =.*static/i)
182
- new_vmx_contents << 'ethernet0.addressType = \"generated\"'
183
- elsif line.match(/^ethernet[1-9]/i) ||
184
- line.match(/^ethernet0.address = /i) ||
185
- line.match(/^ethernet0.generatedAddress = /i) ||
186
- line.match(/^ethernet0.generatedAddressOffset = /i)
184
+ elsif line.match(/^ethernet[0-9].networkName =/i) ||
185
+ line.match(/^ethernet[0-9].addressType =/i) ||
186
+ line.match(/^ethernet[0-9].present =/i) ||
187
+ line.match(/^ethernet[0-9].address =/i) ||
188
+ line.match(/^ethernet[0-9].generatedAddress =/i) ||
189
+ line.match(/^ethernet[0-9].generatedAddressOffset =/i)
187
190
  # Do nothing, delete these lines
188
191
  else
189
192
  new_vmx_contents << line
@@ -199,8 +202,24 @@ module VagrantPlugins
199
202
  end
200
203
  end
201
204
 
202
- unless new_vmx_contents =~ %r{^ethernet0.networkName =}i
203
- new_vmx_contents << "ethernet0.networkName = \"#{guestvm_network}\"\n"
205
+ #unless new_vmx_contents =~ %r{^ethernet0.networkName =}i
206
+ # new_vmx_contents << "ethernet0.networkName = \"#{guestvm_network}\"\n"
207
+ #end
208
+ netOpts = ""
209
+ networkID = 0
210
+ for element in guestvm_network do
211
+ if (config.debug =~ %r{true}i) ||
212
+ (config.debug =~ %r{yes}i)
213
+ puts "guestvm_network[#{networkID}]: #{element}"
214
+ end
215
+ new_vmx_contents << "ethernet#{networkID}.networkName = \"net#{networkID}\"\n"
216
+ new_vmx_contents << "ethernet#{networkID}.present = \"TRUE\"\n"
217
+ new_vmx_contents << "ethernet#{networkID}.addressType = \"generated\"\n"
218
+ netOpts << " --net:\"net#{networkID}=#{element}\""
219
+ networkID += 1
220
+ if networkID >= 4
221
+ break
222
+ end
204
223
  end
205
224
 
206
225
  if config.custom_vmx_settings.is_a? Array
@@ -260,7 +279,7 @@ module VagrantPlugins
260
279
  env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
261
280
  message: "Disk Store : #{guestvm_dsname}")
262
281
  env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
263
- message: "NetworkName : \"#{guestvm_network}\"")
282
+ message: "NetworkName : #{guestvm_network[0..3]}")
264
283
  unless overwrite_opts.nil?
265
284
  env[:ui].info I18n.t('vagrant_vmware_esxi.vagrant_vmware_esxi_message',
266
285
  message: 'Allow Overwrite : True')
@@ -277,7 +296,7 @@ module VagrantPlugins
277
296
  ' install from http://www.vmware.com.'
278
297
  end
279
298
  ovf_cmd = "ovftool --noSSLVerify #{overwrite_opts} "\
280
- "-nw=\"#{guestvm_network}\" -dm=thin --powerOn "\
299
+ "#{netOpts} -dm=thin --powerOn "\
281
300
  "-ds=\"#{guestvm_dsname}\" --name=\"#{guestvm_vmname}\" "\
282
301
  "\"#{new_vmx_file}\" vi://#{config.esxi_username}:"\
283
302
  "#{config.esxi_password}@#{config.esxi_hostname}"\
@@ -1,6 +1,6 @@
1
1
  # VERSION
2
2
  module VagrantPlugins
3
3
  module ESXi
4
- VERSION = '1.1.7'
4
+ VERSION = '1.2.0'
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-vmware-esxi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.7
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Senkerik