...
Returns all the IP ranges that that are assigned to the selected address space. These IP Ranges are then assigned to the network profile. Further differentiation within all the ranges is done by specifying the search tags, passed via the custom properties as follows:
Property name | Scope | Example |
Custom.ProVision.SearchTags.Global | All tenants | GlobalTag:1234 |
Custom.ProVision.SearchTags.Tenant | Tenant | TenantTag:Tenant1 |
Custom.ProVision.SearchTags.BusinessGroup | Business Group | BusinessTag:BG-A |
Custom.ProVision.SearchTags.BluePrint | BluePrint | NetworkType:VM-1 |
Custom.ProVision.SearchTags.Mode | BluePrint | OVERRIDE |
...
The values of the properties can be static dynamic. For example there could be a drop down that would list meaningful names to the customers (Floor 1, Floor 2, etc) and this can be translated to ProVision tags via vRealize Action item (which can in turn get this information externally or from vRO configuration element).
Allocate IP address
Allocates one or more IP addresses based on the input properties and returns then to vRealize automation. IP range selection can be further narrowed down by using custom properties (previous Section).
...
- If Scc.Vm.Orch.Network﹤nicIndex﹥.EnableDHCP is true, the address, static binding is also created.
- If the requested NIC index is that of the default interface (default:0) and the DNSZoneId is configured in tenant settings, the DNS A record is also pushed to this zone. For the value of DNS A record, the vmName is used.
- vRealize Automation configures returned IP addresses and makes configuration changes on the VM
Property | Description |
SubnetPrefixLength | Obtained from IP range |
Gateway | Obtained from IP range, /32 address tagged as gateway (Tag name configurable) |
PrimaryDNS | Provided by custom properties |
SecondaryDNS |
Table 2 Additional allocation information
Property name | Scope | Example |
VirtualMachine.Network.Network#.DNSSuffix | BluePrint | demo.local |
VirtualMachine.Network.Network#.PrimaryDNS | BluePrint | 10.200.1.11 |
VirtualMachine.Network.Network#.SecondaryDNS | BluePrint | 10.200.1.12 |
VirtualMachine.Network.Network#.PrimaryWINS | BluePrint | 10.1.3.1 |
VirtualMachine.Network.Network#.SecondaryWINS | BluePrint | 10.1.3.2 |
VirtualMachine.Network.Network#.DNSSearchSuffixes | BluePrint | demo.local, demo2.local |
VirtualMachine.Network.Network#. dhcpStaticRoutes121 | BluePrint | [{“key”:”10.1.0.0”,”value”: “10.1.0.1”},…] |
VirtualMachine.Network.Network#. interfaceMTU26 | BluePrint | 1500 |
VirtualMachine.Network.Network#. startDate67 | BluePrint | 1/1/1900 |
VirtualMachine.Network.Network#. tftpServerName66 | BluePrint | Tftp1 |
VirtualMachine.Network.Network#. tftpServerAddresses150 | BluePrint | [“10.1.1.1”,,”10.1.1.2”] |
VirtualMachine.Network.Network#.nextServer | BluePrint | 1.1.2.3 |
VirtualMachine.Network.Network#.autconfigureDNS | BluePrint | true or false |
VirtualMachine.Network.Network#.leaseTime | BluePrint | 86400 |
Custom.ProVision.SkipHolding | BluePrint | true |
...
Release IP address
Workflow Release is called when vRealize Automation deprovisions the virtual machine. Workflow accepts the IP address that needs to be released and returns it to the free IP Range. Property Custom.ProVision.SkipHolding specifies whether IP address should be released immediately (value ‘true’) or put in a holding tank (undefined/empty or ‘false’).
...
- Cloud instance: https://cloud.6connect.com/﹤tenantId﹥/api/v1/api.php?
- Local instance: https://provision.example.com/api/v1/api.php?
1.2. Register ProVision IPAM Endpoint type
...
In the vRA step of Add/Update 6Connect IPAM Endpoint workflow, same information needs to be entered as in Figure 2.
Figure 4 Adding IPAM Endpoint: Provision API data
...
- ProVision API Rest HOST: select the REST Host created in 4.1.
...
Endpoint name is automatically generated in the followin form: Provision:﹤tenantId﹥
...
- Custom.ProVision.RestHOSTId: value contains the GUID of the ProVision REST Host that was selected. This tells the workflows on which ProVision server to execute API calls
- Custom.ProVision.TenantId: contains the tenant to which the endpoint belongs.
...
1.4. vRO Configuration (ProVision)
vRO configuration is stored in the cofiguration element object which can be accessed by selecting Configurations tab in the vRealize Orchestrator client. Configuration element is located in Settings/ProVision Settings.
Attribute name | Type | Default value | Description | |
ApiKey | String | Value ApiKey for the ProVision API | ||
ApiSecret | String |
| Value of ApiSecret for the ProVision API | |
restHost | RESTHost |
| REST host for accessing the ProVision API (default) | |
skipHolding | Boolean | True | Global skip holding setting when releasing the IP address | |
Credentials | Array |
| Array of [RestHost, ApiKey, ApiSecret] for multi ProVision environments | |
AddressSpacesCategorySlug | String | customer | Resource entries category for Address Spaces in the vRealize Automation | |
AddressSpaceSectionSlug | String | resource-holder | Resource entries section for Address Spaces in the vRealize Automation | |
VirtualMachineSectionSlug | String | virtual-machine | Section in which the virtual machine resource is created | |
GatewayTag | String | Gateway | Tag that indicates a gateway IP address | |
NICTagPrefix | String | NIC: | Tag Prefix for NIC that block is assigned to (NIC Index is appended to this) | |
tenantSettingsPath | String | Settings/TenantSettings | Location where to store tenant settings | |
AggregateCategorySlug | String | aggregate | Aggregate category slug | |
AddressSpaceReservationTag | String | VRA:AS-Reserved | Tag to mark the address space IP blocks | |
AddressSpaceCategoryName | String | Address Space | The name of the address space category | |
AggregateCategoryName | String | Aggregate | The name of the aggregate category | |
TenantRootCategorySlug | String | customer | Tenant root resource category | |
TenantRootSectionSlug | String | resource-holder | Section of tenant root | |
TenantRootResourceType | String | entry | Resource type for tenant root | |
AggregateSectionSlug | String | resource-holder | Aggregate section | |
AggregateResourceType | String | entry | Aggregate resource type | |
nsxConfigurationElementPath | String | Settings | Path to the nsx configuration element | |
nsxConfigurationElementName | String | nsx-configuration-default | Name of the nsx configuration element | |
dhcpEnablerPropertyName | String | Scc.Vm.Orch.Network | VM property prefix for DHCP enabled property | |
MaxRetries | Number | 3 | Maximum number of retries of failed API calls | |
retrySleepTime | Number | 3 | Sleep time between API call retries |
...
Section 1.0 ProVision Setup
...
Figure 5 Create New Tenant input form
The OrchCreateNewTenant can be repeatedly executed with new input values. If the tenant with the same id already exists, it will update the values for RestHostId, DNSZoneId. Any ProVision object thatalready exists will be left intact.
...
- tenantId
- Tags to filter: a list of tags by which to filter aggregates dropdown
- Aggregates from which to assign
- IPNetwork: IP network to assign
IP network can be empty, in which case the new network is allocated from a pool of available blocks of a given size (mask) - Mask: size of the network
- Gateway: Default getway for a given block.
Gateway can be specified as- IP address literal (e.g. 10.2.1.1) – only if IPNetwork parameter is specified
- IP address index: Ordinal number of the ip address in a give block size (e.g. IPNetwork = 10.1.1.0/24 and gateway = 65 gives gateway address of 10.1.1.65)
- edgeId: Edge id for DHCP reservation (NSX DLR)
Figure 8 OrchCreateAddressSpaceAndAssignBlock step 2
...
If any of these values are not present, the value from IP block is used as a default.
In step 3, additional DHCP options can be specified in form of key-value pairs.
1.5. Delete Address Space
...
Figure 9 Delete Address Space
- tenantId
- Address Space which to remove: drop down list displays all the address spaces of the specified tenant
- Address Space Id: Address space resource id can also be specified if running in none interactive mode
- Address Space Slug: Address space alphanumeric Id. This is an Id of addressSpaceExternalId property of the address space on the vRA networkProfile.
- Ignore any leftover assignments and release addresses: If set to Yes, any assigned IP addresses are unassigned before removing address space. If set to No and there are still IP addresses assigned (apart from network address, broadcast address and gateway), the workflow throws an error
When IP blocks are removed, the reaggregation is performed up to maximum blocksize possible.
1.6. Remove IP Block From Address Space
...
- tenantId
- Ignore assigned resources: If set to Yes, tenant is deleted regardless of assignments. If set to No and there are still IP blocks assigned the workflow throws an error.
Workflow tags a configuration element under Settings/TenantSettings: TenantSettings-﹤tenantId﹥ with new tag value: CONFIGURATION-STATUS:DELETED
...
Code Block |
---|
cloudclient.bat (or cloudclient.sh if running on Linux) |
...
In order to login to the vRA server execute the following command from cloud client CLI:
...
- Custom.ProVision.SearchTags.Global
- Custom.ProVision.SearchTags.Tenant
- Custom.ProVision.SearchTags.BluePrint
- Custom.ProVision.SearchTags.Mode
- Custom.ProVision.SearchTags.Tenant
- Custom.ProVision.SkipHolding
2.2. Property groups
The following properties need to be created in Administration -﹥ Property dictionary -﹥ Property groups:
...
- OrchDHCPSubscriptionAllocate
- Triggered in phase ‘EVENT’ and Life Cycle Event: ‘CloneWorkflow.CloneMachine.EVENT.OnCloneMachineComplete’ when MAC address becomes known
- Pushes the IP address and DHCP options for each NIC that is DHCP enabled
- DHCP enabled NIC must have property ‘Scc.Vm.Orch.Network#.EnableDHCP’ set to ‘true’
- OrchDHCPSubscriptionRelease
- Triggered in phase ‘PRE’, state ‘VMPSMasterWorkflow32.Disposing’
- Removes the DHCP binding for all DHCP enabled NICs
...
DHCP Subscriptions need to be imported for each tenant separately. Run the 6Connect/Operations/OrchDHCPSubscriptionImporter workflow and provide a tenantId as a parameter.
The workflow will automatically read the subscriptions stored in 6Connect-subscriptions/dhcp-subscriptions resource element and import them into vRA.