Pluggable modules
7 minute read
To learn more about this OneFuse feature, refer to Pluggable modules.
Prerequisites
- Configure OneFuse Property Set(s) and OneFuse Module Policies.
- Run OneFuse Configuration per Cloud Assembly Organization.
- Review an overview on OneFuse modules with Aria Automation 8.1+/Cloud.
- Create a new Cloud Template (if none exist) or determine which existing Cloud Template(s) will utilize this OneFuse Module.
Steps
- Know the name of the OneFuse Endpoint created via OneFuse Configuration.
- Determine which OneFuse Pluggable Module Policies to run for this Cloud Template.
- Determine when to run each OneFuse Pluggable Module Policy for the deployment provisioning lifecycle with vRA’s EBS'.
- Update the Cloud Template to add in necessary vRA Properties and/or add in the Custom Resource to invoke OneFuse Pluggable Module Policies.
- Deploy the Cloud Template to provision a vRA Deployment and run provisioning scenarios for the Pluggable Module Policy.
- Destroy the vRA Deployment to run deprovision for the Pluggable Module Policy, if any.
Update the Cloud Template
- Log in to vRA > Cloud Assembly
- Select the Design tab from the top menu bar
- Select the Cloud Templates tab from the left menu
- Edit the Cloud Template and perform the below:
Option 1: add in necessary vRA properties
The following vRA Properties need to be added to the Cloud Template’s Code section under the Resource(s) of interest.
1. Trigger vRA EBS for Pluggable Module:
| Property name format | Property value |
|---|---|
| See options below | 'true' |
Option 1. Trigger only specific individual EBS state(s):
This method is recommended to decrease provision time since it will only run the execute for the states defined. This also offers a quicker way to turn on/off the Policy for testing.
OneFuse_PluggableModulePolicy_Trigger_<EBSExecutionString>- Replace
<EBSExecutionString>with an appropriate Event Broker Subscription
OR:
Option 2. Trigger all EBS state(s):
(This overrides the individual EBS Execution triggers if they are present.):
OneFuse_PluggableModulePolicy_Trigger
Example YAML:
# <EBSExecutionString> is replaced with ComputeProvisionPostLate
# -- Property Name
# <CustomID> is replaced with 001F5
# -- Property Value
# <OneFuse Endpoint Name> is onefuse
# <Pluggable Module Policy Name> is prod
# <Pluggable Module Label> is F5
name: Simple Example
resources:
Cloud_Machine_1:
type: Cloud.Machine
properties:
image: CentOS7
flavor: small
count: 1
OneFuse_PluggableModulePolicy_Trigger_ComputeProvisionPostLate: 'true' # Trigger Property
OneFuse_PluggableModulePolicy_ComputeProvisionPostLate_001F5: 'onefuse:prod:F5'
2. Call Pluggable Module Policy for a vRA EBS:
| Property name format | Property value format |
|---|---|
OneFuse_PluggableModulePolicy_<EBSExecutionString>_<CustomID> |
'<OneFuse Endpoint Name>:<Pluggable Module Policy Name>:<Pluggable Module Label>' |
- Replace
<EBSExecutionString>with an appropriate Event Broker Subscription - Replace
<CustomID>with a unique, user-defined friendly label <Pluggable Module Label>is a friendly label for the Pluggable Module- Format is alphanumeric characters only
A-Z, a-z, 0-9. No spaces, underscores, hyphens nor special characters. - Does not need to match the actual Pluggable Module’s name.
- Format is alphanumeric characters only
Example YAML:
# Example CustomID with sorting
001Apache
002WebApp
003BackupClient
Pluggable Module EBS Execution states
EBSExecutionString refers to a specific vRA EBS State for the OneFuse Module’s policy to execute on.
Replace <EBSExecutionString> with one of the following EBS Execution State values:
| EBS Execution | Subscription State | EBS Priority | EBS Name |
|---|---|---|---|
| Provision | |||
| ComputeAllocationPre | Early | 25 | OneFuse_Provision_PluggableModule_ComputeAllocationPreEarly |
| ComputeAllocationPre | Late | 2015 | OneFuse_Provision_PluggableModule_ComputeAllocationPreLate |
| NetworkConfigure | Early | 25 | OneFuse_Provision_PluggableModule_NetworkConfigureEarly |
| NetworkConfigure | Late | 2015 | OneFuse_Provision_PluggableModule_NetworkConfigureLate |
| ComputeProvisionPre | Early | 25 | OneFuse_Provision_PluggableModule_ComputeProvisionPreEarly |
| ComputeProvisionPre | Late | 2015 | OneFuse_Provision_PluggableModule_ComputeProvisionPreLate |
| ComputeProvisionPost | Early | 25 | OneFuse_Provision_PluggableModule_ComputeProvisionPostEarly |
| ComputeProvisionPost | Late | 2015 | OneFuse_Provision_PluggableModule_ComputeProvisionPostLate |
| ComputeRemovalPost | Late | 2015 | OneFuse_Provision_And_De-Provision_PluggableModule_ComputeRemovalPostLate |
| Deprovision | |||
| ComputePreRemoval | - | 25 | OneFuse_De-Provision_PluggableModule |
List of vRA EBS Trigger Properties:
# <EBSExecutionString> is replaced with ComputeProvisionPostLate
# -- Property Name
# <CustomID> is replaced with 001F5
# -- Property Value
# <OneFuse Endpoint Name> is onefuse
# <Pluggable Module Policy Name> is prod
# <Pluggable Module Label> is F5
name: Simple Example
resources:
Cloud_Machine_1:
type: Cloud.Machine
properties:
image: CentOS7
flavor: small
count: 1
OneFuse_PluggableModulePolicy_Trigger_ComputeProvisionPostLate: 'true' # Trigger Property
OneFuse_PluggableModulePolicy_ComputeProvisionPostLate_001F5: 'onefuse:prod:F5'
CustomID
CustomID refers to a user-specified text string to identify and can set an order of precedence for execution when calling multiple Policies for the OneFuse Module in the same vRA EBS State.
Replace <CustomID> with a unique custom identifier:
- Format is alphanumeric characters only
A-Z, a-z, 0-9. No spaces, underscores, hyphens nor special characters. - Must be unique across all EBS Execution Strings for the OneFuse Module on the specific VM for the Blueprint/Cloud Template.
- Is reusable either between different VM components of the Blueprint/Cloud Template canvas or between different Blueprints/Cloud Templates.
# <EBSExecutionString> is replaced with ComputeProvisionPostLate
# -- Property Name
# <CustomID> is replaced with 001F5
# -- Property Value
# <OneFuse Endpoint Name> is onefuse
# <Pluggable Module Policy Name> is prod
# <Pluggable Module Label> is F5
name: Simple Example
resources:
Cloud_Machine_1:
type: Cloud.Machine
properties:
image: CentOS7
flavor: small
count: 1
OneFuse_PluggableModulePolicy_Trigger_ComputeProvisionPostLate: 'true' # Trigger Property
OneFuse_PluggableModulePolicy_ComputeProvisionPostLate_001F5: 'onefuse:prod:F5'
Specify sorting with CustomID:
When executing multiple different OneFuse Module’s Policies in the same EBS State, prefix the <CustomID> with a numeric value (for example 001, 002, etc).
The <CustomID> is sorted prior to executing the OneFuse module’s policies.
# Example CustomID with sorting
001Apache
002WebApp
003BackupClient
Additional helpful vRA Properties
Purpose: Relate OneFuse Policy executions from different OneFuse Modules together with a Tracking ID.
| Property | Value Format |
|---|---|
OneFuse_Tracking_Id |
A GUID (globally unique identifier) that links OneFuse Policy Executions and the resulting Managed Objects together for a given resource on a deployment. The first OneFuse Module Policy execution will populate this vRA property and it will be passed into other OneFuse Modules automatically. (When a Tracking ID is not provided, a Tracking ID gets generated for the Policy execution.) Learn more about OneFuse Tracking ID. |
Purpose: Reference a specific NIC’s values to get hostname, IP Address, etc.
| Property format | Example |
|---|---|
OneFuse_VmNic<#>.<value> |
OneFuse_VmNic0.hostname, OneFuse_VmNic0.ipAddress, OneFuse_VmNic0.fqdn |
- Replace
<#>with a number from0to9, one for each NIC. For most use cases, NIC 0 is the primary network interface. - Replace
<value>with an appropriate key:dnsSuffix,fqdn,gateway,hostname,ipAddress,macAddress,netmask,network,subnet,target targetwill be the FQDN when a DNS Suffix is provided; otherwise, it will be the hostname without domain.
Example Cloud Template YAML
# <EBSExecutionString> is replaced with ComputeProvisionPostLate
# -- Property Name
# <CustomID> is replaced with 001F5
# -- Property Value
# <OneFuse Endpoint Name> is onefuse
# <Pluggable Module Policy Name> is prod
# <Pluggable Module Label> is F5
name: Simple Example
resources:
Cloud_Machine_1:
type: Cloud.Machine
properties:
image: CentOS7
flavor: small
count: 1
OneFuse_PluggableModulePolicy_Trigger_ComputeProvisionPostLate: 'true' # Trigger Property
OneFuse_PluggableModulePolicy_ComputeProvisionPostLate_001F5: 'onefuse:prod:F5'
Option 2: Add in Custom Resource for OneFuse Pluggable Module
Review OneFuse custom resources before using this method.
- From the Resource Types navigation, expand Custom Resources
- Drag-and-drop
OneFuse:PluggableModule_v1to the canvas - In the Code tab, provide values for the following properties:
| Parameter Name | Required? | Notes |
|---|---|---|
endpointName |
Required | OneFuse Endpoint Name in vRA. Refer to Managing endpoints. |
policyName |
Required | OneFuse Module Policy Name (string). |
templateProperties |
Optional | Additional properties that are referenced within the Policy. JSON format. |
trackingId |
Optional | Tracking ID (string) to link multiple OneFuse Policy Executions and resulting OneFuse Managed Objects together. If none is passed, one gets generated by OneFuse for that specific Policy Execution. |
Pluggable Module specific parameters:
| Parameter Name | Required? | Notes |
|---|---|---|
pluggableModuleName |
Required | Label/Name of Pluggable Module. Alphanumeric characters only, no special characters nor spaces. |
Provision
Deploy a Cloud Template with OneFuse Pluggable Module Policy configured. Pluggable Module’s provisioning scenarios will run.
Outputs
The following vRA Property will have the generated OneFuse Pluggable Module Managed Object as a JSON string on the Deployment.
| Property Name | Property Value Format |
|---|---|
OneFuse_PluggableModule_<Pluggable Module Label><CustomID> |
JSON string of OneFuse Pluggable Module Managed Object |
Deprovision
Destroy an existing deployment with OneFuse Pluggable Module Policy configured. The Pluggable Module Policy’s deprovisioning scenarios (if any) will run.
vRA EBS
| EBS Execution | Subscription State | EBS Priority | EBS Name |
|---|---|---|---|
| Provision | |||
| ComputeAllocationPre | Early | 25 | OneFuse_Provision_PluggableModule_ComputeAllocationPreEarly |
| ComputeAllocationPre | Late | 2015 | OneFuse_Provision_PluggableModule_ComputeAllocationPreLate |
| NetworkConfigure | Early | 25 | OneFuse_Provision_PluggableModule_NetworkConfigureEarly |
| NetworkConfigure | Late | 2015 | OneFuse_Provision_PluggableModule_NetworkConfigureLate |
| ComputeProvisionPre | Early | 25 | OneFuse_Provision_PluggableModule_ComputeProvisionPreEarly |
| ComputeProvisionPre | Late | 2015 | OneFuse_Provision_PluggableModule_ComputeProvisionPreLate |
| ComputeProvisionPost | Early | 25 | OneFuse_Provision_PluggableModule_ComputeProvisionPostEarly |
| ComputeProvisionPost | Late | 2015 | OneFuse_Provision_PluggableModule_ComputeProvisionPostLate |
| ComputeRemovalPost | Late | 2015 | OneFuse_Provision_And_De-Provision_PluggableModule_ComputeRemovalPostLate |
| Deprovision | |||
| ComputePreRemoval | - | 25 | OneFuse_De-Provision_PluggableModule |
List of vRA EBS Trigger Properties:
# <EBSExecutionString> is replaced with ComputeProvisionPostLate
# -- Property Name
# <CustomID> is replaced with 001F5
# -- Property Value
# <OneFuse Endpoint Name> is onefuse
# <Pluggable Module Policy Name> is prod
# <Pluggable Module Label> is F5
name: Simple Example
resources:
Cloud_Machine_1:
type: Cloud.Machine
properties:
image: CentOS7
flavor: small
count: 1
OneFuse_PluggableModulePolicy_Trigger_ComputeProvisionPostLate: 'true' # Trigger Property
OneFuse_PluggableModulePolicy_ComputeProvisionPostLate_001F5: 'onefuse:prod:F5'
Troubleshooting
Troubleshoot in vRealize Orchestrator.
- Log in to vRealize Orchestrator.
- Turn on Verbose Logging and try again to see additional log messages in vRO Workflows:
- Select Library > Workflows from the left menu
- Go to: OneFuse > Pluggable Module > vRA8 to find corresponding workflow runs and view logs
- Optionally, run the workflows in the Manual folder to manually test
- Optionally, configure timeouts for EBS and/or Configure timeouts for OneFuse modules.
Additional resources:
- Review Troubleshooting in OneFuse
- Review VMware troubleshooting resources