Friday, 28 July 2017

VCP7-CMA Section 6 - Blueprint Dissection

Last and final section in the VCP CMA 7 Exam...

Section 6: Extend a vRealize Automation Implementation
+ Objective 6.1: Configure vRealize Orchestrator for use with vRealize Automation
·      Configure vRealize Automation to use an external vRealize Orchestrator server
Administration > vRO Configuration > Server Configuration:

Default port is 8281.
·      Configure default vRealize Orchestrator settings in vRealize Automation
From default tenant (https://vra-app/vcac/org/vsphere.local) as administrator@vsphere.local, vRO Configuration – then modify from there:

·      Set tenant specific vRealize Orchestrator settings in vRealize Automation
From a specific tenant (https://vra-app/vcac/org/engineering) as someone with tenant admin rights, then ‘Administration’ tab, vRO Configuration, Server configuration and configure as above.

Objective 6.2: Create and Manage Event Broker Subscriptions
Normally EBS used for extensibility during machine provisioning or life cycle management; for example, when provisioning a server, you might want to talk to an IPAM or CMDB, or a Linux server might need to have a DNS entry added to AD.  The same in reverse when disposing of the server.
·      Determine appropriate subscription option based on design (blockable, replyable, schema)
Replyable = something like Pre approval if a response from an external system is needed to be returned to vRA (i.e., if a VM creation is dependent on another approval system).  Look at the schema to identify what the output parameter from vRO needs to be:

Event Topic (for example, pre-approval, machine provisioning, business group configuration):  Choose the type of event you want to execute a workflow on
Conditions – normally Life cycle stage or similar.
Blocking:  Blocking will wait for the workflow to complete until continuing deployment
Priority:  Used to determine the order in which EBS should be run; the LOWER the priority number = the sooner it will run

·      Configure subscription conditions based on the design (data, core event message values)
Administration > Events > Subscriptions > +

Select the event type…  For the example of add a server in CMDB, you can do this through machine provisioning:

Click Next…  Add conditions.  Typically, something like:

Data > Lifecycle state > Lifecycle State Name = VMPSMasterWorkflow32.MachineProvisioned

Now choose the workflow you wish to run.  In the example here, I am writing out to an SQL database with some info about the VM… 

Change details as required:

·      Configure subscription workflow including input and output parameters based on the design
Input must be a property with a sensible name (most people tend to use ‘payload’ – according to the extensibility guide:
“To use a single parameter, configure one parameter with a type of Properties. You can provide any useful name. For example, you can use payload as the parameter name.”
Outputs must match the reply schema (see the picture under the ‘blockable, replyable, schema’ section)
·      Configure subscription details based on the design (priority, timeout, blocking)
Covered in ‘blockable, replyable, schema’.

+ Objective 6.3: Configure Virtual Machine Lifecycle Automation
All of the below assume you have vRO workflows for specific lifecycle events – i.e., a workflow which will create a DNS entry in AD for a Linux server, or interact with a CMDB to create or delete entries).  
·      Configure automatic post-provisioning actions based on design criteria
·      Configure automatic deactivation of a virtual machine based on condition criteria
·      Configure automated event brokering for different status or event criteria based on design requirements
Covering off all of the above – from the Administration tab, click on ‘Subscriptions’ and ‘Events’.  Depending on when you want the specific use case is, you can select a particular event to trigger a workflow. 


And can be selected from an Event Broker Subscription workflow

Add conditions to trigger the particular workflows:
·      Data > Lifecycle state > Lifecycle State Name = VMPSMasterWorkflow32.something (see below)
·      Data > Lifecycle state > State Phase = PRE or POST
·      Anything else that you need to specify, i.e., I tend to use things like the blueprint names (assuming they have the OS type in there).

and specify a workflow to run in the event:

Objective 6.4: Install and Configure Plugins in vRealize Orchestrator
·      Install and configure plug-in in vRealize Orchestrator
o   Install and configure vRealize Automation plugin
vRO 7.0 Get the automation plugin – either from a vRO server that is shipped with vRA, from the vRA server (connecting through WinSCP or similar and browsing to /usr/lib/vco/app-server/plugins) OR from the solution Exchange

And get the vCAC plugin…

N.B., by default the standard vRO server will not have these plugins so for a simple quick install, the vRA version of vRO is going to save you a lot of time…

Click on ‘Plugins’:

Find the .vmoapp plugin file (or .DAR file extension) that you want to install…

From vRO 7.1+ The plugin is already installed in vRO so no need to download / install it.

o   Install and configure VMware NSX plugin
Get the pugin from VMware Downloads:

And install in the same method as above:

·      Run configuration workflows in vRealize Orchestrator client
o   Run configuration workflows for vRealize Automation plugin
This has already been demonstrated *** using the vRO console, but can also be done using vRA > Administration > vRO Configuration > Server Endpoints > New+:

And workflows can be run from vRO directly here:

o   Run configuration workflows for NSX plugin
Outlined in section 5.1
o   Run configuration workflows for vSphere plugin
From within vRO, run the workflow Library > vCenter > Configuration > Add a vCenter Server Instance:

·      Determine if a plugin is enabled
Ensure check-box in the plugins screen from the vco-controlcenter

Objective 6.5: Modify and Run Basic vRealize Orchestrator Workflows
Enormous topic covered by a few lines, and vRO is definitely something that you will need to work with extensively…  There are week-long training courses for datacentre automation with vRO, but this VMware freeby (albeit slightly old) is well worth a look:
·      Execute vRealize Orchestrator workflows with defined parameters
From within vRO, select a workflow, right-click and select ‘Start Workflow’

·      Troubleshoot vRealize Orchestrator workflow errors
Again, huge topic;  from each WF run:

Review the logs here. 
·      Modify vRealize Orchestrator workflows
Varies depending on vRO version; find the ‘Edit’ pencil icon:

Depending on what needs to be modified, click on the ‘per-item’ edit button:

(This has changed with vRO 7.2 where you’ll half the screen is reserved for the WF and half is for the edit field (In, Out, Exception, Visual Bindings, Scritping, etc))