VMware Cloud Community
chrisheartland
Enthusiast
Enthusiast

vCAC handing out IP's to Win2k8R2 but not Win2k12R2?

When building vm's, vCAC will apply the "ipam" provided IP that is given out via the netowork profile to Windows 2008 R2 vm's but NOT Windows 2012 R2 vm's. Not only does the VM not get the IP but vCAC does not have the IP as being allocated in the network profile.

I am using the same vcenter customization spec for both blueprints and each blueprint is using the same network profile. Is there a "gotcha" to getting vcac/customization spec to apply the IP for 2012 R2?

0 Kudos
11 Replies
rcporto
Leadership
Leadership

Maybe not the real problem, but at moment, vCAC 6 doesn't support guest customization for Windows Server 2012 R2.

http://www.vmware.com/pdf/vcloud-automation-center-60-support-matrix.pdf

---

Richardson Porto
Senior Infrastructure Specialist
LinkedIn: http://linkedin.com/in/richardsonporto
0 Kudos
chrisheartland
Enthusiast
Enthusiast

I think I figured this out. When I set the custom property "VirtualMachine.Network0.Name" it did not give me an IP. When I remove this and just let it do this internally it set the IP for 2012 R2.

stvkpln
Virtuoso
Virtuoso

I'm not entirely sure that's correct... keep in mind, from a guest perspective, vSphere doesn't distinguish between 2012 and 2012 R2... I can't imagine any reason vCAC wouldn't support provisioning of O/S'es that vCenter itself has no issue doing the guest customization on.. In theory, those two lists should be in sync.

-Steve
0 Kudos
zebduin
Enthusiast
Enthusiast

Just to confirm - you are using VirtualMachine.Network0.Name to reference the network port group name as it shows up in the virtual reservation correct?  To call the network profile by name the custom property you would need to use is VirtualMachine.Network0.ProfileName

chrisheartland
Enthusiast
Enthusiast

Yes, I figured that out eventually Smiley Wink.

0 Kudos
chrisheartland
Enthusiast
Enthusiast

It seems that when I provision a vm, it's not always giving me the right IP associated with the Profile Name? I have three profile names tied to three different vlans. Each vlan and profilename are the same as one another. I get the correct DVSwitch selected based on the VM.N0.Name property, but it sometimes (not always) gives an IP from a differently named profile name. Have you seen this? It's the only network custom property that doesn't seem to be consistent (DNS, WINS, subnet mask etc. are always consistent).

Edit: I notice it's the only property that says "Create property VirtualMachine.Network0.ProfileName: VRF REG v1132 on ...". All the rest say "Found existing property.."

Edit2: Ok, I just built a bunch of servers, each with a different profile name selected. It's just seems to still be doing the "round robin" selection. Some are right but some are wrong. It's just whichever came in whatever order.

0 Kudos
stvkpln
Virtuoso
Virtuoso

How are you specifying the profile? Is it being set during runtime (in the form), or are you trying to do it with a (vCO) workflow during BuildingMachine? If the latter, that's not going to work... by the time it gets to that state, it's already instantiated the NIC and tied it to a profile on a random robin basis, based on the available networks in the reservation for the compute resource..

-Steve
0 Kudos
chrisheartland
Enthusiast
Enthusiast

Gosh I sure hope so. So, you can set IP if you have an IPAm solution, and you can set dns, wins, and gateway etc at build machine, but you can't select network profile during the same time?

0 Kudos
stvkpln
Virtuoso
Virtuoso

It isn't quite a fair comparison to talk about an IPAM vs. Network Profiles.... but, I feel your pain there. I dealt with a lot of this as well. Unfortunately, the only time you can pull configurations from a network profile is when the NIC is being instantiated.. and that happens prior to the BuildingMachine workflow getting called. It's less than ideal, and I've made my own feelings on the matter known to VMware, but they implemented the functionality with a specific use case in mind.. and it wasn't one where you dynamically assign the profile after that NIC has been created on the VM object in vCAC....

-Steve
0 Kudos
chrisheartland
Enthusiast
Enthusiast

What I don't get is that you can set hostname dynamically even though hostname is one of the first things, along with network profile, to be set. But, you can still change it during Building Stub. So, why wouldn't you be able to set the network profile then too?

I mean, my whole IP plan has to change now. How exactly are you doing yours? I was just going to let vCAC hand out IP's based on the network profile chosen. The only other ways I can think of are IPAM (which we aren't using) and DHCP which would mean you can't use a network profile at all. Is that even possible?

0 Kudos
stvkpln
Virtuoso
Virtuoso

You can sort of set a hostname dynamically... if you know what to do to update the values. The rules are probably the same for network profiles; you can possibly access the IaaS API and make the calls necessary to do it.. I just didn't have the time, energy, or motivation to get that piece done, personally. Honestly, though, network profiles were too static in some respects for my use, so it was a non-starter (more on that below).

At the moment, IP's are being assigned ahead of time for systems, and I've built out a workflow that can take the source network 'type' requested, and convert it into the correct portgroup to set for the custom property, and then I have an action that will go and determine all of the other network property values that're required. Because I have to support provisioning into a vast number of different Active Directory domains, I needed a more dynamic method to deal with the various DNS properties that need to be set dynamically based on the source input domain... My approach ended up being configuring IP Pools for all of the portgroups that included subnet mask, gateway, and default DNS values for that portgroup. On top of that, for each domain we had to support within a datacenter (beyond the default for an environment), I defined an IP Pool for each of those that only included DNS information. That way, I can dynamically make the calls as I need, and dynamically get the correct network topology set.

Once all of that network info gets grabbed, I parse the IP from the request against the default gateway to make sure they are, in fact, correct, then do some other validation that I need to do for networking. It ended up being the most operationally sustainable approach for my use case.

-Steve
0 Kudos