VMware Cloud Community
stevedrummond
Hot Shot
Hot Shot

vRA 8 - IPAM Integration - Custom Offline Install Package for Infoblox v0.4

Hey folks,

Edit: The officially released v1.0.0 includes all dependencies and some much needed improvements (such as only creating fixed addresses). Get it from VMware Solution Exchange .

If you're like me trying to use vRA 8 in an Enterprise behind a proxy you're no doubt banging your head against the wall like I am.

Recently I wanted to try out the Infoblox IPAM integration before I again (just like vRA 7) went the custom implementation route. Unfortunately the installation package requires access to pypi.org to pull down the Python dependencies.

I have compiled a new package for Infoblox IPAM integration based off their v0.4 on the marketplace which contains all dependencies for the package. You can install it exactly the same way as the original package. It is unfortunately quite a bit larger (13kb -> 100+mb).

I have uploaded the package to my drive here: https://drive.google.com/open?id=16JQ33tNLd4aNMUILlBSAVtDIh1gfTYSi

Be warned that the IPAM Integrations don't seem to follow the proxy-exclude rules though, so if you have a proxy configured because of public cloud, it will likely still not work for you. I have opened an SR for this issue.

Hope it helps some others.

cheers

steve

Message was edited by: Steve Drummond at 2020-01-24 11:04:00.000+1100

8 Replies
RonPSSC
Enthusiast
Enthusiast

Thanks Steve for your post..! Was also banging my head on this..!

All the reference documentation as well as the actual Package currently available on Solution Exchange are, in fact, applicable for the Public Cloud Automation Service (CAS) Offering of vRA 8 only....not...the "On-Prem" or Offline iterations of vRA8.

Thx again!

Ron

Reply
0 Kudos
stevedrummond
Hot Shot
Hot Shot

There is a newly released version on the marketplace now, version 1.0.0 (link below). It contains all the dependencies now. I haven't tried it out yet though.

VMware Solution Exchange

Reply
0 Kudos
RonPSSC
Enthusiast
Enthusiast

Interesting news. Thx.

A quick, few questions, Steve.

We're now trying to use the embedded ABX Action elements within the Infoblox Package to assign IPs during a standard VM Provisioning but nothing is being allocated from the IPAM...??

Perhaps more is needed or missing with our configuration but was hoping you could clarify a few things for us.

1.  Do we need to create a Subscription based on an Event topic in order to "trigger" the Infoblox ABX Actions, e.g. Allocate, Update, Deallocate, etc.?

2.  If so, are the ABX Actions supposed to be "visible" and accessible within the Cloud Assembly Extensibility component of vRA in order to map them to Events or Subscriptions? (At this time nothing is available in our setup even though we've successfully integrated the IPAM)

Also, we've created (what we believe is) a proper Network Profile with all the correct Network attributes and IP Address Ranges we need.. (For info, we're currently using Infoblox as our IPAM with our vRA 7.6 Instances).

Thx. Ron

Reply
0 Kudos
stevedrummond
Hot Shot
Hot Shot

You don't need to create any subscriptions and you won't be able to see the ABX actions within extensibility. As it is an IPAM integration it functions the same as other integrations in vRA, where if it uses ABX it's all invisible to you; this includes any event types it can subscribe to that you cannot necessarily use yourself. Internally they do use the same Docker repository but the actions aren't surfaced in the UI.

As for how to use it, the documentation is certainly lacking.

First make sure you have these extensible attributes configured in Infoblox:

  • VMware NIC index (Integer)
  • VMware resource ID (String)
  • Tenant ID (String)
  • CMP Type (String)
  • VM ID (String)
  • VM Name (String)

Also make sure you have DNS Views configured for the networks in Infoblox as it's required by this implementation.

Then configure the networks in vRA 8 with IPAM Ranges.

Now comes the annoying part. Unfortunately you cannot target an entire network as "Static" by default. To have a static IP assigned by IPAM you must drag a network onto your blueprint canvas and attach the machine to it. Then update the YAML for the machine to include the property assignment: static for the network you just attached. So your machine YAML would look like this

resources:

     Cloud_Machine_1:

     type: Cloud.Machine

     <other properties>

     networks:

          - network: `${resource.Cloud_Network_1.id}'

               assignment: static

If you decide not to use the IPAM integration you would need to write your own integration to Infoblox, using the event topics Network Configure (to assign) and Compute post removal (to reclaim).

Reply
0 Kudos
RonPSSC
Enthusiast
Enthusiast

Yep that was it, Steve!!

The Blueprint was missing the YAML code "assignment: static" from within the Cloud Machine  "network" properties..!! This was all that was needed in order to trigger the initial Infoblox ABX Action. Thanks so much for this tip..!!

Unfortunately, we've run into another issue that's preventing Infoblox from actually "allocating" an IP to the Machine. We're suspecting that this problem has more to do with the built-in ABX functions than anything vRA related.

Seems as though the ABX wants to first create a DNS Host Record in Infoblox before fetching an IP. Unfortunately this is causing us grief because the sole purpose of our Infoblox Appliance at this time is to merely function as an IPAM Server and not an authoritative DNS Server. Looks as though since the DNS Service has not been configured/enabled in our Infoblox setup, it's having a negative affect on the overall ABX functionality.. We're now getting the follow error messages "Cannot create 'record:host object(s): .....The action is not allowed..."

If you're aware of any type of property that we could add to the Blueprint to prevent this DNS type action from taking place, that would be awesome..!!  We're thinking maybe something along the lines of "configure.for.dns: false" or anything similar...?? No worries though. If this doesn't exist or isn't possible at all, we'll have to determine another type of workaround or contact Infoblox directly.

Thx again for all your help on this!

Reply
0 Kudos
stevedrummond
Hot Shot
Hot Shot

I had the exact same error as we also only use Infoblox for IPAM.

New response for Infoblox IPAM integration v1.0

Edit: I had originally written the that property was set on the Infoblox host configuration page

So I originally wrote my response for v0.4 below, but out of curiosity I just looked at the source for v1.0. It looks like you can now set the property Infoblox.IPAM.createFixedAddress=true on a resource and it will only create a Fixed Address for your VM and not a Host address. You can either set this within the YAML or at the Project level (which is how I will be doing it).

Time for me to see if it actually works ... (Edit: It works!)

This response is for Infoblox IPAM integration v0.4

I looked at the source of the ABX and there is no flag. Any item vRA provisions that is identified as a Virtual Machine is treated by the ABX as being registered as a Host and not just a reservation or fixed address. A Host object in Infoblox requires the DNS view unfortunately.

My first reaction was to update the source code but that would only screw over the people who need to support it after I'm done. I ended up just creating the DNS view in IPAM; I set it as non-authoritative and didn't even configure any of the settings (e.g., upstream DNS). This allows the IPAM integration to work without really having any impact at all to Infoblox or provisioned machines.

Reply
0 Kudos
RonPSSC
Enthusiast
Enthusiast

That was it again, Steve!   Awesome research and problem solving!

We downloaded the v1.0 iteration from the Solution Exchange, applied the Property you identified for the "Fixed Address" within the Machine's YAML, and presto....immediate IP "Allocation" from the initial ABX Infoblox Action, as well as the "Update" ABX Action afterward.!

Just for info, we're thinking there was a minor Clipboard issue during the copy and paste of the Infoblox Property you recommended. For the sake of anyone else reading this, the Property should read as follows:

Infoblox.IPAM.createFixedAddress: true   (: instead of = sign prior to the value)

Very grateful for your prompt replies and accurate information!!

Ron

Reply
0 Kudos
stevedrummond
Hot Shot
Hot Shot

Sorry I didn't think to paste the property name/value combo as legitimate YAML, it was just a reference (e.g., because setting it at the project level does not use YAML).