Skip to main content

How to call customized vRealize Orchestrator workflows in vRealize Automation Center

You almost can do everything as long as vRealize Automation Center (aka vRA) and vRealize Orchestrator (aka vRO) are integrated. I think that's the hard part if you are newbie like me. After reading lot of articles, I learned how it works. Following is my experience, please let me know if you see anything wrong.

把vRA和vRO结合在一起几乎可以做任何事情。如果你和我一样是新手,和uijuede 得整合这块比较难,最近阅读了一些这方面的文章,算是有所了解了。以下是我的见解,如果有问题留言给我。



The purposes of integrate vRA and vRO is execute vRO customized workflows to do extra works. There are two ways to do integration. You can modify the vRA blueprint by vRealize Automation Advanced Designer or run vRO predefined workflows to inject properties to vRA blueprints, to call customized workflows. I want to focus on second option, I feel it's much easier.

Check out my serial articles of how to implement vRA and vRO if you haven't yet. I put the links in end of this article.


  1. Login to vRA as IaaS administrator.

  2. Go to Infrastructure - Endpoints - Endpoints - Create a vCenter Orchestrator endpoint.

  3. Login to vRO as administrator.

  4. Go to vCloud Automation Center - Infrastructure Administration - Extensibility - Installation node.

  5. Run Install vCO customization workflow.

  6. Run Assign a state change workflow to a blueprint and its virtual machines workflow to associate a customized vRO workflow with a vRA blueprint.



Now it's integrated. vRA will call vRO customized workflow when you work on injected blueprint. There are few things you may want to know:


  1. You will get similar errors below if you miss step 5 above.
    Workflow 'WFStubMachineProvisioned' failed with the following exception: Cannot find the machine with ID: 00000000-0000-0000-0000-000000000000.

    ID: 00000000-0000-0000-0000-000000000000 Workflow 'WFStubMachineProvisioned' has failed unexpectedly.


  2. VC:VirtualMachine is passed from vRA to vRO by default on version 6.2, you don't have to create workflow to wrap it like older version. Just create an input parameter in your workflow.

  3. You will get similar error below if you set https://vrealize-automation-appliance-hostname:8281 instead of https://vrealize-automation-appliance-hostname:8281/vco on step 2 above.
    Endpoint Data Collection failed for endpoint vRO.contoso.com [Workflow Instance Id=39517] vCenter Orchestrator returned an error: Full authentication is required to access this resource.




---Chinese Version---

整合vRA和vRO的目的是调用自定义的vRO工作流做额外的工作。有两种方式做整合,可以通过vRealize Automation Advanced Designer修改vRA模板参数来调用自定义vRO工作流,也可以通过vRO内置工作流将一些属性注入vRA模板来调用自定义vRO工作流。个人觉得第二种比较靠谱。

如果你还没有部署vRA和vRO,可以参考我的系列文章。文末附送。


  1. 以IaaS管理员身份登陆vRA。

  2. 进入路径Infrastructure - Endpoints - Endpoints - 创建一个 vCenter Orchestrator endpoint。

  3. 以管理员身份登陆vRO。

  4. 进入路径vCloud Automation Center - Infrastructure Administration - Extensibility - Installation node。

  5. 运行工作流Install vCO customization。

  6. 运行工作流Assign a state change workflow to a blueprint and its virtual machines把指定的vRO工作流注入vRA模板。



至此整合完成,当你使用vRA模板时vRA会自动调用自定义的vRO工作流。但还有一些需要注意的:


  1. 如果上边的第5步没有做,你会在vRA中看到如下错误。
    Workflow 'WFStubMachineProvisioned' failed with the following exception: Cannot find the machine with ID: 00000000-0000-0000-0000-000000000000.

    ID: 00000000-0000-0000-0000-000000000000 Workflow 'WFStubMachineProvisioned' has failed unexpectedly.


  2. VC:VirtualMachine 这个参数在6.2版本中会自动从vRA传递到vRO,无需使用前置工作流做转换。

  3. 如果在上边第2步中错误的用https://vrealize-automation-appliance-hostname:8281当作https://vrealize-automation-appliance-hostname:8281/vco来使用了,你会看到如下错误提示。
    Endpoint Data Collection failed for endpoint vRO.contoso.com [Workflow Instance Id=39517] vCenter Orchestrator returned an error: Full authentication is required to access this resource.




I referred following websites when I wrote this article.(以下是写本文时参考的网站)

http://www.vzare.com/

https://brianragazzi.wordpress.com

My vCAC and vCO deployment articles.(我的vCAC和vCO部署文档)

How to Build vCAC 6.2 LAB on VMware Workstation 11 – Part 1

How to Build vCAC 6.2 LAB on VMware Workstation 11 – Part 2

How to Build vCAC 6.2 LAB on VMware Workstation 11 – Part 3

How to configure vCAC 6.2 LAB on VMware Workstation 11 – Part 1

How to configure vCAC 6.2 LAB on VMware Workstation 11 – Part 2

How to configure vCAC 6.2 LAB on VMware Workstation 11 – Part 3

Popular posts from this blog

Connect-NsxtServer shows "Unable to connect to the remote server"

When you run Connect-NsxtServer in the PowerCLI, it may show "Unable to connect to the remote server".  Because the error message is a little bit confusing with other login issues. It's not easy to troubleshoot. The actual reason is the NSX-T uses a self-signed certificate, and the PowerCLI cannot accept the certificate automatically. The fix is super easy. You need to set the PowerCLI to ignore the invalid certificate with the following command: Set-PowerCLIConfiguration -Scope User -InvalidCertificateAction:Ignore -Confirm:$false

Setup Terraform and Ansible for Windows provisionon CentOS

Provisioning Windows machines with Terraform is easy. Configuring Windows machines with Ansible is also not complex. However, it's a little bit challenging to combine them. The following steps are some ideas about handling a Windows machine from provisioning to post configuration without modifying the winrm configuration on the guest operating system. Install required repos for yum. yum -y install https://repo.ius.io/ius-release-el7.rpm yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm yum -y install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm yum -y install epel-release yum -y install yum-utils yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo Install  Terraform . sudo yum -y install terraform Install  Ansible . sudo yum -y install ansible Install  Kerberos . yum -y install gcc python-devel krb5-devel krb5-libs krb5-workstation

How to List All Users in Terraform Cloud

Terraform has a rich API. However, the API documentation does not mention how to list all users. We can leverage the organization membership API and the PowerShell command  Invoke-RestMethod  to get a user list. 1. Create an organization token in Terraform Cloud. 2. Create the token variable ( $Token ) in PowerShell. $Token = "abcde" 3. Create the API parameters variable in PowerShell. $params = @{ Uri = "https://app.terraform.io/api/v2/organizations/ZHENGWU/organization-memberships?page%5Bsize%5D=100" Authentication = "Bearer" Token = $Token ContentType = "application/vnd.api+json" } Note: You need to replace ZHENGWU with your own organization name. And I used 100 at the end of the URI to retrieve the first 100 users. It can be any number.  4. Retrieve the API return and list the user's email address. $Test = Invoke-RestMethod @params $Test.data.attributes.email