Scripting

Configure and use the OneFuse Scripting module with VMware Aria Automation 8x/Cloud

To learn more about this OneFuse module, refer to Scripting.

Prerequisites

  1. Configure OneFuse Property Set(s) and OneFuse Module Policies.
  2. Run OneFuse Configuration per Cloud Assembly Organization.
  3. Review an overview on OneFuse Modules with Aria Automation 8.1+/Cloud.
  4. Create a new Cloud Template (if none exist) or determine which existing Cloud Template(s) will utilize this OneFuse Module.

Steps

  1. Know the name of the OneFuse Endpoint created via OneFuse Configuration.
  2. Determine which OneFuse Scripting Policies to run for this Cloud Template.
  3. Determine when to run each OneFuse Scripting Policy for the deployment provisioning lifecycle with vRA’s EBS'.
  4. Update the Cloud Template to add in necessary vRA Properties and/or add in the Custom Resource to invoke OneFuse Scripting Policies.
  5. Deploy the Cloud Template to provision a vRA Deployment and run Provision Script(s).
  6. Destroy the vRA Deployment to run Deprovision Script(s), if any.

Update the Cloud Template

  1. Log in to vRA > Cloud Assembly
  2. Select the Design tab from the top menu bar
  3. Select the Cloud Templates tab from the left menu
  4. 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 EBS for Scripting:

Property name format Property value
See options below 'true'

Option 1. Trigger only specific individual EBS state(s):

  • OneFuse_ScriptingPolicy_Trigger_<EBSExecutionString>
  • Replace <EBSExecutionString> with an appropriate Event Broker Subscription

OR:

Option 2. Trigger all EBS state(s):

  • OneFuse_ScriptingPolicy_Trigger

Example YAML:

# Execute 2 OneFuse Scripting Policies

# <EBSExecutionString> is replaced with ComputeProvisionPostLate

# -- 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

name: Simple Example
resources:
  Cloud_Machine_1:
    type: Cloud.Machine
    properties:
      image: CentOS7
      flavor: small
      count: 1
      OneFuse_ScriptingPolicy_Trigger_ComputeProvisionPostLate: 'true' # Trigger Property
      OneFuse_ScriptingPolicy_ComputeProvisionPostLate_001Apache: 'onefuse:linux_Apache'
      OneFuse_ScriptingPolicy_ComputeProvisionPostLate_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 YAML:

# -- Property Value
# <OneFuse Endpoint Name>  is onefuse
# <Scripting Policy Name> is linux_Apache

formatVersion: 1
inputs: {}
resources:
  Custom_onefuse_scripting:
    type: Custom.onefuse.scripting
    properties:
      policyName: 'linux_Apache'
      endpointName: 'onefuse'
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
ComputeAllocationPre Early 10 OneFuse_Provision_Scripting_ComputeAllocationPreEarly
ComputeAllocationPre Late 2000 OneFuse_Provision_Scripting_ComputeAllocationPreLate
NetworkConfigure Early 10 OneFuse_Provision_Scripting_NetworkConfigureEarly
NetworkConfigure Late 2000 OneFuse_Provision_Scripting_NetworkConfigureLate
ComputeProvisionPre Early 10 OneFuse_Provision_Scripting_ComputeProvisionPreEarly
ComputeProvisionPre Late 2000 OneFuse_Provision_Scripting_ComputeProvisionPreLate
ComputeProvisionPost Early 10 OneFuse_Provision_Scripting_ComputeProvisionPostEarly
ComputeProvisionPost Late 2000 OneFuse_Provision_Scripting_ComputeProvisionPostLate
Deprovision
ComputePreRemoval - 10 OneFuse_De-Provision_Scripting

List of vRA EBS Trigger Properties:

# Execute 2 OneFuse Scripting Policies

# <EBSExecutionString> is replaced with ComputeProvisionPostLate

# -- 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

name: Simple Example
resources:
  Cloud_Machine_1:
    type: Cloud.Machine
    properties:
      image: CentOS7
      flavor: small
      count: 1
      OneFuse_ScriptingPolicy_Trigger_ComputeProvisionPostLate: 'true' # Trigger Property
      OneFuse_ScriptingPolicy_ComputeProvisionPostLate_001Apache: 'onefuse:linux_Apache'
      OneFuse_ScriptingPolicy_ComputeProvisionPostLate_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 ComputeProvisionPostLate

# -- 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

name: Simple Example
resources:
  Cloud_Machine_1:
    type: Cloud.Machine
    properties:
      image: CentOS7
      flavor: small
      count: 1
      OneFuse_ScriptingPolicy_Trigger_ComputeProvisionPostLate: 'true' # Trigger Property
      OneFuse_ScriptingPolicy_ComputeProvisionPostLate_001Apache: 'onefuse:linux_Apache'
      OneFuse_ScriptingPolicy_ComputeProvisionPostLate_002BasicSetup: 'onefuse:linux_setup'

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.

# -- Property Value
# <OneFuse Endpoint Name>  is onefuse
# <Scripting Policy Name> is linux_Apache

formatVersion: 1
inputs: {}
resources:
  Custom_onefuse_scripting:
    type: Custom.onefuse.scripting
    properties:
      policyName: 'linux_Apache'
      endpointName: 'onefuse'
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 from 0 to 9, 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
  • target will be the FQDN when a DNS Suffix is provided; otherwise, it will be the hostname without domain.
Example Cloud Template YAML
# Execute 2 OneFuse Scripting Policies

# <EBSExecutionString> is replaced with ComputeProvisionPostLate

# -- 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

name: Simple Example
resources:
  Cloud_Machine_1:
    type: Cloud.Machine
    properties:
      image: CentOS7
      flavor: small
      count: 1
      OneFuse_ScriptingPolicy_Trigger_ComputeProvisionPostLate: 'true' # Trigger Property
      OneFuse_ScriptingPolicy_ComputeProvisionPostLate_001Apache: 'onefuse:linux_Apache'
      OneFuse_ScriptingPolicy_ComputeProvisionPostLate_002BasicSetup: 'onefuse:linux_setup'

Option 2: Add in Custom Resource for OneFuse Scripting

  • From the Resource Types navigation, expand Custom Resources
  • Drag-and-drop OneFuse:Scripting_v1 to 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.

Provision

Deploy a Cloud Template with OneFuse Scripting module configured. Provisioning Script(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
ComputeAllocationPre Early 10 OneFuse_Provision_Scripting_ComputeAllocationPreEarly
ComputeAllocationPre Late 2000 OneFuse_Provision_Scripting_ComputeAllocationPreLate
NetworkConfigure Early 10 OneFuse_Provision_Scripting_NetworkConfigureEarly
NetworkConfigure Late 2000 OneFuse_Provision_Scripting_NetworkConfigureLate
ComputeProvisionPre Early 10 OneFuse_Provision_Scripting_ComputeProvisionPreEarly
ComputeProvisionPre Late 2000 OneFuse_Provision_Scripting_ComputeProvisionPreLate
ComputeProvisionPost Early 10 OneFuse_Provision_Scripting_ComputeProvisionPostEarly
ComputeProvisionPost Late 2000 OneFuse_Provision_Scripting_ComputeProvisionPostLate
Deprovision
ComputePreRemoval - 10 OneFuse_De-Provision_Scripting

List of vRA EBS Trigger Properties:

# Execute 2 OneFuse Scripting Policies

# <EBSExecutionString> is replaced with ComputeProvisionPostLate

# -- 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

name: Simple Example
resources:
  Cloud_Machine_1:
    type: Cloud.Machine
    properties:
      image: CentOS7
      flavor: small
      count: 1
      OneFuse_ScriptingPolicy_Trigger_ComputeProvisionPostLate: 'true' # Trigger Property
      OneFuse_ScriptingPolicy_ComputeProvisionPostLate_001Apache: 'onefuse:linux_Apache'
      OneFuse_ScriptingPolicy_ComputeProvisionPostLate_002BasicSetup: 'onefuse:linux_setup'

Troubleshooting

Troubleshoot in vRealize Orchestrator.

  1. Log in to vRealize Orchestrator.
  2. Turn on Verbose Logging and try again to see additional log messages in vRO Workflows:
    1. Select Library > Workflows from the left menu
    2. Go to: OneFuse > Scripting > vRA8 to find corresponding workflow runs and view logs
    3. Optionally, run the workflows in the Manual folder to manually test
  3. Optionally, configure timeouts for EBS and/or Configure timeouts for OneFuse modules.

Additional resources: