Scripting
6 minute read
To learn more about this OneFuse module, refer to Scripting.
Prerequisites
- Configure OneFuse Property Set(s) and OneFuse Module Policies.
- Run OneFuse Configuration per vRA Tenant.
- Review the OneFuse Modules overview for vRealize Automation 7.6.
- Create a new vRA Blueprint (if none exist) or determine which existing Blueprint(s) will utilize this OneFuse Module.
- Resource: Designing Machine Blueprints
Configure the Blueprint
- Know the name of the OneFuse Endpoint created via OneFuse Configuration.
- Determine which OneFuse Scripting Policies to run for this Blueprint.
- Determine when to run each OneFuse Scripting Policy for the deployment provisioning lifecycle with vRA’s EBS'.
- Update the Blueprint to add in necessary vRA Properties to invoke OneFuse Scripting Policies.
- Deploy the Blueprint to provision a vRA Deployment and run Provision Script(s).
- Destroy the vRA Deployment to run Deprovision Script(s), if any.
Update the Blueprint
- Log in to the vRA Tenant
- Select the Design tab from the top menu bar
- Select the Blueprints tab from the left menu
- Edit the Blueprint and perform the below:
Add in necessary vRA Properties
The following vRA Properties need to be added to the Blueprint’s Properties > Custom Properties section under the Resource(s) of interest.
1. Trigger EBS for Scripting:
| 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_ScriptingPolicy_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 (see above).
OneFuse_ScriptingPolicy_Trigger
Example vRA Custom Properties (in key: value pair format)
# Execute 2 OneFuse Scripting Policies
# <EBSExecutionString> is replaced with ProvisionedPreLate
# -- Property Name
# <CustomID> is replaced with 001Apache and 002BasicSetup
# -- Property Value
# <OneFuse Endpoint Name> is onefuse
# <Scripting Policy Name> is linux_Apache and linux_setup
OneFuse_ScriptingPolicy_Trigger_ProvisionedPreLate: true
OneFuse_ScriptingPolicy_ProvisionedPreLate_001Apache: onefuse:linux_Apache
OneFuse_ScriptingPolicy_ProvisionedPreLate_002BasicSetup: onefuse:linux_setup
2. Call Scripting Policy for an EBS:
| Property name format | Property value format |
|---|---|
OneFuse_ScriptingPolicy_<EBSExecutionString>_<CustomID> |
<OneFuse Endpoint Name>:<Scripting Policy Name> |
- Replace
<EBSExecutionString>with an appropriate Event Broker Subscription. - Replace
<CustomID>with a unique, user-defined friendly label.
Example vRA Custom Properties (in key: value pair format)
# Example CustomID with sorting
001Apache
002WebApp
003BackupClient
Scripting 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 States, using the table below as a resource:
| EBS Execution | Subscription State | EBS Priority | EBS Name |
|---|---|---|---|
| Provision | |||
| BuildingPre | Early | 10 | OneFuse_Provision_Scripting_BuildingPreEarly |
| BuildingPre | Late | 2000 | OneFuse_Provision_Scripting_BuildingPreLate |
| ProvisionedPre | Early | 10 | OneFuse_Provision_Scripting_ProvisionedPreEarly |
| ProvisionedPre | Late | 2000 | OneFuse_Provision_Scripting_ProvisionedPreLate |
| Deprovision | |||
| MachineDisposingPost | - | 10 | OneFuse_De-Provision_Scripting |
List of vRA EBS Trigger Properties:
# Execute 2 OneFuse Scripting Policies
# <EBSExecutionString> is replaced with ProvisionedPreLate
# -- Property Name
# <CustomID> is replaced with 001Apache and 002BasicSetup
# -- Property Value
# <OneFuse Endpoint Name> is onefuse
# <Scripting Policy Name> is linux_Apache and linux_setup
OneFuse_ScriptingPolicy_Trigger_ProvisionedPreLate: true
OneFuse_ScriptingPolicy_ProvisionedPreLate_001Apache: onefuse:linux_Apache
OneFuse_ScriptingPolicy_ProvisionedPreLate_002BasicSetup: onefuse:linux_setup
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.
# Execute 2 OneFuse Scripting Policies
# <EBSExecutionString> is replaced with ProvisionedPreLate
# -- Property Name
# <CustomID> is replaced with 001Apache and 002BasicSetup
# -- Property Value
# <OneFuse Endpoint Name> is onefuse
# <Scripting Policy Name> is linux_Apache and linux_setup
OneFuse_ScriptingPolicy_Trigger_ProvisionedPreLate: true
OneFuse_ScriptingPolicy_ProvisionedPreLate_001Apache: onefuse:linux_Apache
OneFuse_ScriptingPolicy_ProvisionedPreLate_002BasicSetup: onefuse:linux_setup
Specify sorting with CustomID:
When executing multiple different OneFuse Module 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. Learn more about OneFuse Tracking ID. |
When a Tracking ID is not provided, a Tracking ID gets generated for the Policy execution.
Purpose: Reference a specific NIC’s values to get hostname, IP address, etc.
| Property format | Example |
|---|---|
OneFuse_VmNic<#>.<value> |
See examples below |
Replace <#> with a number from 0 to 9, one for each NIC.
Replace <value> with an appropriate key: dnsSuffix, fqdn, gateway, hostname, ipAddress, macAddress, netmask, network, subnet, target
For most use cases, NIC 0 is the primary network interface and the target hostname is a Fully Qualified Domain Name (FQDN).
Examples:
OneFuse_VmNic0.dnsSuffixOneFuse_VmNic0.fqdnOneFuse_VmNic0.hostnameOneFuse_VmNic0.ipAddressOneFuse_VmNic0.target: when DNS Suffix is provided, will be the FQDN; otherwise, will be the hostname (without domain).
Custom property placement methods
Influence Custom Properties for Resources using different methods:
| Method | Description |
|---|---|
| Basic | Add a Custom Property to the vSphere machine on the blueprint canvas, or to the blueprint layer itself. |
| Advanced 1 | Add a Custom Property to an existing or new vRA Property Group. |
| Advanced 2 | Add a Custom Property to a more global level - such as vCenter Endpoint (to run on all deployments) and/or a Reservation (to run on all deployments using that reservation), etc. |
Learn more: Understanding Custom Properties Precedence
Compiled example vRA Custom Properties
Review example below of vRA Custom Properties (in key: value pair format) for this OneFuse Module.
# Execute 2 OneFuse Scripting Policies
# <EBSExecutionString> is replaced with ProvisionedPreLate
# -- Property Name
# <CustomID> is replaced with 001Apache and 002BasicSetup
# -- Property Value
# <OneFuse Endpoint Name> is onefuse
# <Scripting Policy Name> is linux_Apache and linux_setup
OneFuse_ScriptingPolicy_Trigger_ProvisionedPreLate: true
OneFuse_ScriptingPolicy_ProvisionedPreLate_001Apache: onefuse:linux_Apache
OneFuse_ScriptingPolicy_ProvisionedPreLate_002BasicSetup: onefuse:linux_setup
Provision
Deploy a Blueprint with OneFuse Scripting module configured. Provisioning Scripts(s) will run on the resource(s).
Deprovision
Destroy an existing deployment with OneFuse Scripting Module configured. Deprovisioning Script(s) will run on the resource(s) prior to deprovisioning.
vRA EBS
| EBS Execution | Subscription State | EBS Priority | EBS Name |
|---|---|---|---|
| Provision | |||
| BuildingPre | Early | 10 | OneFuse_Provision_Scripting_BuildingPreEarly |
| BuildingPre | Late | 2000 | OneFuse_Provision_Scripting_BuildingPreLate |
| ProvisionedPre | Early | 10 | OneFuse_Provision_Scripting_ProvisionedPreEarly |
| ProvisionedPre | Late | 2000 | OneFuse_Provision_Scripting_ProvisionedPreLate |
| Deprovision | |||
| MachineDisposingPost | - | 10 | OneFuse_De-Provision_Scripting |
List of vRA EBS Trigger Properties:
# Execute 2 OneFuse Scripting Policies
# <EBSExecutionString> is replaced with ProvisionedPreLate
# -- Property Name
# <CustomID> is replaced with 001Apache and 002BasicSetup
# -- Property Value
# <OneFuse Endpoint Name> is onefuse
# <Scripting Policy Name> is linux_Apache and linux_setup
OneFuse_ScriptingPolicy_Trigger_ProvisionedPreLate: true
OneFuse_ScriptingPolicy_ProvisionedPreLate_001Apache: onefuse:linux_Apache
OneFuse_ScriptingPolicy_ProvisionedPreLate_002BasicSetup: onefuse:linux_setup
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 > Scripting > vRA7 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