Tag Archives: vRealize

Veeam Integration with vRA Part 2: Restore

In this 2 part series we will walk through integrating Veeam with vRealize Automation and vRealize Orchestrator. Part 1 focused on giving users the ability to add virtual machines to existing Veeam backup jobs from within the vRA self-service portal. In Part 2 we will add the ability to restore virtual machines from a list of available restore points in vRA. The versions used are Veeam 9.5 and vRA 7.2 / 7.3.

The steps outlined below assume that you have already installed and configured Veeam Backup and Replication, and vRealize Automation with either embedded or external vRealize Orchestrator instance, as well as having a basic knowledge of both areas. The following process and the sample workflows we will import are not endorsed by, or supported by Veeam. Finally, Veeam Enterprise Manager is required to use Veeam RESTful API. For further reading material see the Veeam RESTful API Reference here. Alternative sample workflows and reading provided by The IT Hollow here, and another useful article by vRatpack here with vRA 6.2.

Add the REST Host

If you have already added your Veeam backup server as a REST host in part 1 then skip this step. Otherwise, open the vRealize Orchestrator client and log in as an administrator, change the view to Design from the drop down menu. The first thing we will do is add the Veeam server as a REST host. From the Workflows tab expand Library, HTTP-REST, Configuration.

REST_host_1

Right click Add a REST host and click Start workflow. Enter the name and URL of the Veeam server, the default URL uses port 9399, for example http://VeeamServer:9399. Review the default options and click Next.

REST_host_2

Configure the host authentication options as required. Here I have used Basic authentication, and entered the credentials for a service account with administrative access to Veeam.

REST_host_3

Configure proxy and advanced settings if required, then click Submit. The workflow will run and add the Veeam server as a REST host. There are also Update a REST host, and Remove a REST host, workflows if you want to make any changes. Existing REST hosts can be viewed from the inventory tab under expand HTTP-REST.

Import the Sample Workflows

If you have already imported the sample workflows in part 1 then skip this step. In this example I am using sample workflows provided here, again these are not supported by Veeam. Download and extract the ZIP file to a location accessible from the vRO client. Change to the packages tab and click the Import Package icon. When prompted browse to the downloaded package file and click Import.

Veeam_Package_1

Ensure all the required elements are included and click Import selected elements.

Veeam_Package_2

We have now imported the backup workflow and action, and the restore workflow and action. The final element is a settings file which we will use to determine the REST host. Open the configurations tab and expand Library, Veeam. Click the Settings file and the pencil icon to edit. Select Attributes and locate the restHost attribute, click the Not set value and expand HTTP-REST, select the Veeam server we added earlier from the list of REST hosts and click Select. Click Save and close. The value of the restHost attribute should now be the Veeam backup server.

The restore jobs users select from are pulled using the getVMRestorePoints action under com.veeam.library in the actions tab. If you want to examine the workflow in more detail go to the workflows tab and expand Library, Veeam. Select the Restore VM workflow and go through the tabs in the right hand pane. From the General tab you can see the restHost attribute is using the settings configuration file we have just configured. The Inputs for the workflow are Date (the Veeam restore point) and vmObj (virtual machine name). Under the Schema tab you can view the Scripting task which is making the API calls.

Restore_VM

Update Sample Script

If you are using the sample script referenced in this post then there are further steps required to fix the date formatting with later versions of Veeam. If you are using alternative or custom workflows then the following is not required.

  • Edit the Restore VM workflow, open the Schema tab and click the Find Restore Point script. Update the date and time format on line 25 to: var rpDateLocale = System.getDateFromFormat(restorePointNodes.item(i).getElementsByTagName(“CreationTimeUTC”).item(0).textContent,”yyyy-MM-dd’T’HH:mm:ss.sss’Z'”).toLocaleString();

Find_Restore_Point_OldFind_Restore_Point_New

  • Edit the getVMRestorePoints action, open the Scripting tab. Update the date and time format on line 26 to: var rpDateLocale = System.getDateFromFormat(restorePointNodes.item(i).getElementsByTagName(“CreationTimeUTC”).item(0).textContent + ” UTC”,”yyyy-MM-dd’T’HH:mm:ss.sss’Z’ ZZZ”).toLocaleString();

Restore_Point_Action_OldRestore_Point_Action_New

  • You can test the API calls are successfully bringing back restore points by running the workflow in vRO and selecting a virtual machine, a list of available restore points should be displayed.

Run_vRO

vRA Integration

The final step is to hook the vRO workflow into vRA. Log into the vRealize Automation portal as a user with service architect permissions. From the Design tab select XaaS and Resource Actions. Any existing resource actions are listed. Click New.

Existing_Resource

Map the resource action to the relevant vRO workflow. In this case we need to expand Library, Veeam and select the Restore VM workflow. Click Next.

Restore_VM_Resource

The input mappings should already be populated; the resource type is IaaS VC Virtual Machine, the input parameter matches up with the parameter configured in the vRO workflow (vmObj which passes the virtual machine name), and this maps to the VC:VirtualMachine orchestrator type.

Restore_VM_Input

Accept the default values for the resource action form and click Finish.

Restore_VM_Form

The new resource action is now listed as a draft. To start using the action select it and click Publish.

New_Resource

Now select the Administration tab and Catalog Management. Open the Actions page, the new resource action we created should now be displayed.

If you want to change the icon of the resource action you can do so by selection the action and clicking Configure. There are a number of useful vRA icons available here, including sample icons for day 2 actions. Note for users of vRA 7.2 there is a known issue with changing the icon for custom actions, resolved in 7.3 as per this KB article.

Restore_VM_Action

The next step is to assign our custom action to an entitlement. Open the Entitlements page and select the relevant entitlement. Click the Items & Approvals tab, under Entitled Actions click the green plus symbol. Locate the new resource action and select the check box to add it to the entitled actions. Click Ok and Finish.

Restore_VM_Entitlement

To confirm the configuration has worked browse to the Items tab and select Machines. Any virtual machines that have the custom resource action added to the entitlement will show the new action in the drop-down Actions menu.

restore_vm_item

When selecting the new action I am presented with the action form as per the design canvas we saw earlier. In this example I select the restore point from the drop-down list that the getVMRestorePoints vRO action has pulled from the Veeam backup server, and click Submit.

restore_request

The virtual machine name is then passed through to the next stage of the workflow, along with the restore point ID. You can check the status of the job in vRA under the Requests tab, check the Restore VM workflow has run successfully in the vRO console, and check the restore task that will be running as normal in the Veeam Backup & Replication console.

_______________

Veeam Integration with vRA Part 1: Backup

Veeam Integration with vRA Part 2: Restore

Configuring vRealize Automation with vRealize Log Insight

In this post we will walk through integrating vRealize Automation with vRealize Log Insight to monitor and collect events for the vRA management stack. The following example we will be based on vRealize 7.3 with Log Insight 4.5, but the process has been validated with vRealize 7.x and Log Insight 4.x. If you do not already have Log Insight installed see the vRealize Log Insight Install Guide, if you are also using NSX see the NSX with Log Insight Integration Guide.

The configuration process consists of installing the management pack for Log Insight, installing the Log Insight agent on the Windows components, configuring the built-in Log Insight agent on the vRealize Automation appliances, and creating Log Insight templates and filters to gather the required information.

Management Pack Installation

Browse to the IP address or FQDN of the Log Insight instance and log in using the admin account. From the drop-down menu in the top right select Content Packs and Marketplace. Locate VMware – vRA 7 and click Install.

mp1

The management pack is now installed, review the Setup Instructions and click Ok.

mp2

Log Insight Agent Installation

From the drop-down menu in the top right again, select Administration. Under Management open the Agents page.

agents1

Select Download Log Insight Agent. Select the Windows MSI and copy the file to the Windows servers in the vRA management stack, in this case the IaaS Web and Manager servers, DEM, and Agent servers.

  • Right click and Install the file.
  • Accept the license terms and click Next.
  • Confirm the Log Insight server is auto-populated and click Next.
  • The install will now run. Click Finish once complete.

Go back to the Agents page in the Log Insight web interface. You should see the servers start populating the detected agents table. Next we’ll configure the built-in Log Insight agent on the vRA appliances. If you need to re-install or upgrade the built-in agent see this KB.

Open an SSH connection to the vRA appliance using an SSH client such as Putty. If SSH is not enabled on the appliance you can configure this by browsing to https://yourappliance:5480 and enabling SSH under the Admin tab.

Browse to the correct location cd /etc

View the liagent configuration file more liagent.ini

Edit the file, press the insert key to start typing vi liagent.ini

Remove the semi-colon that is commenting out the hostname, protocol, and port lines. Enter the hostname of the Log Insight instance, leave the protocol and ports with the default settings. To save and exit the file use :wq

Restart the Log Insight service service liagentd restart

edit

Log Insight Configuration

Log back in to the Log Insight web UI. Now that the agents are all installed or configured you should see the corresponding servers populating the agents table under Administration, Management, Agents.

agents

Click the drop-down arrow next to All Agents. Locate the vRealize Automation 7 – Windows template and click Copy Template. In the filter field add the Windows servers running vRA components with the Log Insight agent installed. Scroll down to the Agent Configuration and review the build settings if you want to configure specific event collections or if you need to change the default install path for vRA. Click Save New Group.

agentconfig

Locate the vRealize Automation 7 – Linux template and click Copy Template. Repeat the process this time adding the vRA appliances to the configuration. Once complete you should have templates configured to monitor all servers in the vRA management stack.

templates

Go back to Dashboards. Under VMware – vRA 7 you will start to see events being collected by Log Insight.

dashboard

Adding Custom Resource Actions for vRA 7.x

This post will walk through adding a resource action for vRealize Automation 7.x, mapped to a custom vRO workflow. The steps below assume that the vRO instance has been integrated with vRA.

Log into the vRealize Automation portal as a user with service architect permissions. From the Design tab select XaaS and Resource Actions. Any existing resource actions are listed. Click New.

vra1

Map the resource action to the relevant vRO workflow. In this example I am using a workflow that adds a virtual machine to a backup job. You can use any workflow that has been configured to accept an input parameter from a vRA item. For this particular case we are using the VC:VirtualMachine parameter which passes the virtual machine provisioned by vRA.

vra2

If not already populated select the relevant input mappings. In this case the resource type is IaaS VC Virtual Machine, the input parameter matches up with the parameter configured in the vRO workflow (whatever you have named it, vmObj here), and this maps to the VC:VirtualMachine orchestrator type.

If your vRO parameter does not have a corresponding mapping already in vRA or ready to be imported into vRA then you can create a new / custom resource mapping in the Resource Mappings page.

vra3

Enter a name and description for the resource action. Configure the remaining settings as appropriate, you have the option to set a provisioning or disposal type (leave blank if neither) and have the action always available or only when a certain criteria is met.

If you un-select the hide catalog request information page the user is prompted for a description and reason for requesting the resource action.

vra11

Once you have completed the details page click Next.

vra4

Edit the form to represent how you want the action to be displayed to users. Most of this configuration should be obtained from the vRO workflow so you may not need to make changes here. Click Finish.

vra5

The new resource action is now listed as a draft. To start using the action select it and click Publish.

vra6

Now select the Administration tab and Catalog Management. Open the Actions page, the new resource action we created should now be displayed.

If you want to change the icon of the resource action you can do so by selection the action and clicking Configure. There are a number of useful vRA icons available here, including sample icons for day 2 actions. In my example I am unable to update the icon which seems to be an issue with custom actions created in vRA 7.2; resolved in 7.3 as per this KB article.

vra7

The next step is to assign our custom action to an entitlement. Open the Entitlements page and select the relevant entitlement. Click the Items & Approvals tab, under Entitled Actions click the green plus symbol. Locate the new resource action and select the check box to add it to the entitled actions. Click Ok and Finish.

vra8

To confirm the configuration has worked browse to the Items tab and select Machines. Any virtual machines that have the custom resource action added to the entitlement will show the new action in the drop-down Actions menu.

vra9

When I select the new action I am presented with the action form as per the design canvas we saw earlier. In this example I select the backup job from the drop-down list of jobs that my vRO workflow has pulled from the backup server, and click Submit. The VC:VirtualMachine parameter is then passed through to the next stage of the workflow, which adds machine to the selected backup job.

vra10