Welcome to another post on be-virtual.net! Today, we’re diving into a powerful plugin within VMware Aria Automation Orchestrator—the vSphere plugin. This default plugin is designed to make managing vSphere environments smoother and more efficient, especially when it comes to automating workflows and connecting seamlessly with vCenter Server.
Configuration
Setting up the vSphere plugin might seem like a daunting task, but don’t worry—it’s pretty straightforward once you get the hang of it. Here’s how you can add a vCenter Server instance:
Step-by-Step Procedure:
Log in to the Orchestrator interface with an admin account.
Go to Library > Workflows.
Navigate to Workflows > Library > vCenter > Configuration.
Start the workflow: Add a vCenter Server instance.
You’ll need to input the following details:
vCenter Server Instance Properties:
IP or Hostname: %fqdn-vcenter%
HTTPS Port: 443
SDK Location: /sdk
Ignore Certificate Warnings: True (This automatically accepts the vCenter Server certificate if you choose this option.)
Connection Properties:
Create Session Per User: True (This means Orchestrator will create a session per user for a more secure connection. You can choose Embedded: True / External: False based on your needs.)
Username: svc-vaao@example.local
Password: **********
Domain Name: example.local
Additional Endpoints:
PBM Endpoint URL: default
SMS Endpoint URL: default
Once you’ve entered all the necessary details, simply Click Run, and the workflow will take care of the rest.
Screenshot
Here is an screenshot of the location of the workflow (Add a vCenter Server instance). This is the required workflow for adding a vSphere environment to VAAO.
Validation
Once you’ve configured the plugin, you’ll want to verify that everything is working as expected. Here’s a quick way to check if the plugin is properly connected to your vCenter Server:
Go to Administration > Inventory in the Orchestrator interface.
Under vSphere vCenter Server, you should see a vCenter Server listed and accessible at the object level.
If you’re not seeing this, it might be worth revisiting your configuration settings.
Wrap-up
I hope this guide helps you get the most out of the vSphere plugin. Feel free to drop me a comment if you have any questions or need further clarification.
In this blog post, we will add a CD-ROM device to a vSphere Virtual Machine in an automated way. This will be done with vRO (vRealize Orchestrator/Aria Automation Orchestrator). The action is used for creating a CD-ROM drive when provisioning a new machine with vRO.
I am doing this blog post because, after a lot of Googling, I could not find a good example or solution online. So it was time to do a blog post after figuring out what I needed to do!
So let’s start the blog post about adding a CD-ROM to a virtual machine.
vRO – Action Code
Here is the vRealize Orchestrator/Aria Automation Orchestrator code for an action. This action creates the specification for adding a CD-ROM to an already running or a new virtual machine. It’s a lot of code for a “simple” CD-ROM drive because, in the vCenter Server interface, it feels like a couple of easy clicks. In the backend it is another story, see the code below. You need to attach a lot of specifications together to add a CD-ROM to a virtual machine.
Action details:
Name: createCdDvdDriveSpecification
Version: 1.0.0
Description: Create the specification for a vSphere CD/DVD drive to add a CD/DVD drive to a virtual machine with the VMware vCenter SDK.
Inputs: None
Return Type: Any
Location: com.bv.vsphere.vm.spec
// Set variable
var deviceConfigSpecs = new Array();
var deviceConfigSpec;
// Add CD-ROM connect spec
var connectInfo = new VcVirtualDeviceConnectInfo();
connectInfo.allowGuestControl = true;
connectInfo.connected = false;
connectInfo.startConnected = true;
// Add CD-ROM backing spec
var backingInfo = null;
backingInfo = new VcVirtualCdromRemotePassthroughBackingInfo();
backingInfo.deviceName = "";
// Add Virtual CD-ROM
var cdrom = new VcVirtualCdrom();
cdrom.backing = backingInfo;
cdrom.controllerKey = 200;
cdrom.key = 0;
cdrom.unitNumber = 0;
cdrom.connectable = connectInfo;
// Create CD-ROM configuration spec
var deviceConfigSpec = new VcVirtualDeviceConfigSpec();
deviceConfigSpec.device = cdrom;
deviceConfigSpec.operation = VcVirtualDeviceConfigSpecOperation.add;
deviceConfigSpecs[0] = deviceConfigSpec;
// Troubleshooting generated configuration specification
// System.debug(deviceConfigSpec);
// Return specification
return deviceConfigSpec;
vRO – Workflow
This is a part of a larger workflow but it will help you get started. I have listed the most important parts of creating a virtual machine and how to get started. This code is quite identical to changing a virtual machine to add a CD-ROM drive.
// Load module
var vsphereVmSpec = System.getModule("com.bv.vsphere.vm.spec");
// Set variable
var actionName = arguments.callee.name.substr(6);
var deviceConfigSpecs = [];
var deviceConfigSpec;
// Virtual machine spec
var vmConfigSpec = new VcVirtualMachineConfigSpec();
// Lot more stuff here like VM name, resource pool, host etc
// Add CD-ROM
deviceConfigSpec = vsphereVmSpec.createCdDvdDriveSpecification();
deviceConfigSpecs[ii++] = deviceConfigSpec;
// Combine configuration
vmConfigSpec.deviceChange = deviceConfigSpecs;
// Start Virtual Machine creation
try {
System.log("[" + actionName + "] Starting Virtual Machine creation (" + virtualMachineName +")");
task = vmFolder.createVM_Task(vmConfigSpec, vmResourcePool, vmHost);
}
catch (exception) {
throw "[" + actionName + "] exception";
}
// Return VC:Task
return task;
Wrap-up
So this is my technical blog post about adding a CD-ROM to a virtual machine with vRealize Orchestrator (vRO). Hopefully, it is useful for somebody, please respond below if you have any comments or additional information! See you next time! 🙂
Today a basic tutorial on vRealize Orchestrator 8.X drop-down boxes in a form. With a basic drop-down box, you can improve the user experience in selecting and requesting items from your cloud management portal (CMP). By using drop-down boxes you can leverage easy validation and responses based on other drop-down boxes in your form.
In this tutorial, we are going to create dropdown boxes that respond to each other based on the user’s selection. This can be handy for improving the user experience. Sometimes the list can become very big with numerous options. By sub-selecting a group and filtering to a smaller list of options the user can easier make his decision.
Keep in mind:
This tutorial is focused on vRealize Orchestrator 8.X but can still be leveraged in vRealize Orchestrator 7.X with some minor modifications.
This tutorial is also usable for vRealize Automation 8.X forms. This can be leveraged by the Service Broker component by importing vRealize Orchestrator workflows.
Use Case
To give you some background around the code and usability. Let’s assume we are developing a workflow for creating Virtual Machines in vSphere. Based on user input surrounding the Operating System information we can determine the type of virtual machine that will be created when the request is submitted. We can also limit the user to some standard options like only Windows 10 or Windows Server 2019.
Keep in mind: this blog post is only focused on the form part, not on the actual creation of the virtual machine in vSphere.
vRO Actions
The first action we are going to create is called “formVmOsFamily“. This will display three values in the form. Based on what you select here the second action will be triggered.
/*
Script name: formVmOsFamily
Inputs:
- None
Return Type:
- vRO 8.X: string:array
Description field:
Author: M. Buijs - ITQ
Developed by: M. Buijs - ITQ
Date: 2021-08-17
Version: 1.0.0
Description: This action returns the available Guest Family of the Operating Systems.
*/
// Operating System Family list
return [
"Linux",
"VMware",
"Windows"
];
Here is the second action that is called “formVmOsGuest“. This will respond to the input provided by the operating system family in the interface.
/*
Script name: formVmOsGuest
Inputs:
- osFamily (string) = Operating System Family
Return Type:
- vRO 8.X: string:array
Description field:
Author: M. Buijs - ITQ
Developed by: M. Buijs - ITQ
Date: 2021-08-05
Version: 1.0.0
Description: This action returns the available Guest Operating Systems.
*/
// Input validation
if (osFamily == "" || osFamily == null) {
return ["Please select the Operating System family first"];
}
// Linux
if (osFamily == "Linux")
return [
"CentOS 6 (64-Bit)",
"CentOS 7 (64-Bit)",
"CentOS 8 (64-Bit)",
"Debian 10 (64-Bit)"
];
// VMware
if (osFamily == "VMware")
return [
"VMware ESXi 6.0",
"VMware ESXi 6.5",
"VMware ESXi 6.7",
"VMware ESXi 7.0"
];
// Windows
if (osFamily == "Windows")
return [
"Windows 10 (64-Bit)",
"Windows Server 2016 (64-Bit)",
"Windows Server 2019 (64-Bit)",
"Windows Server 2022 (64-Bit)"
];
Here is an overview of screenshots of how it should look like when created the actions in vRealize Orchestrator:
vRO Workflow
Here is the vRealize Orchestrator workflow, I have created an empty workflow and only configured the input form dropdown part! This will help you to set up the workflow so that the actions will work in your environment. The important part is not to forget to configure the workflow inputs and listed below:
Inputs:
virtualMachineOsFamily (string)
virtualMachineOsGuest (string)
Recording
Here is a recorded video of the input form dropdown boxes in action. The video demonstrates the capability of dropdown boxes and what they can deliver for a customer. It also gives you an idea of what you will get after creating the workflow and actions.
Improvements/Guidance
If you are going to use this code in production… You might need to consider some important points:
Always create a list of supported Operating Systems that are used and allowed to be used in your Company. More options will not always simplify the deployment for an end-user.
You could store the values in a vRealize Orchestrator Configuration Element depending on how frequently this list is changed.
Summary
So this concludes my blog post about creating dropdown boxes in vRealize Orchestrator and reacting on the input. Hopefully, this was useful for somebody getting started with interfaces in vRealize Automation (vRA) or vRealize Orchestrator (vRO). Please respond in the comment section below if you have any questions or remarks!
This blog post is about upgrading vRealize Orchestrator 8.X to a newer version. After a couple of vRealize Orchestrator Upgrades since the 8.0 release and getting stuck a couple of times I decided to do a simple write-up with some tips and tricks.
In my lab environment, I have got multiple orchestrators running embedded, standalone, and cluster. Most issues I encountered are related to the standalone version that is connected with the VMware vCenter Server.
vRO upgrade checks
Let’s start with some simple upgrade checks to make sure everything is working before the upgrade and to improve the chance of succeeding.
Make sure the root account is not expired on all nodes in the cluster.
Make sure you have the correct vCenter SSO password. Verify this by logging in with administrator@vsphere.local on the vCenter Server. The password is required for the standalone upgrade that is directly connected to the VMware vCenter Server.
Make sure the time sync is working on all the nodes in the cluster.
vRO upgrade
Let’s start with the vRealize Orchestrator Upgrade. Here is an overview of the procedure and the commands required to perform the upgrade.
Keep in mind: Step six is optional and is only required for the vRealize Orchestrator that is connected to the vCenter SSO. For the vRealize Automation connected upgrade, this step can be skipped.
Procedure:
Create a virtual machine snapshot.
Open an SSH session with the vRealize Orchestrator node.
Login with the root account on the vRealize Orchestrator node.
Mount the upgrade media to the virtual machine.
Mount the media in the linux system (mount /dev/sr0 /mnt/cdrom).
Enter the SSO password as a variable in the shell (export VRO_SSO_PASSWORD=your_sso_password).
The upgrade will start. Depending on the size of the vRealize Orchestrator node it will take between 30 to 90 minutes.
After the upgrade is completed restart the system (reboot).
Verification:
Check the virtual machine console for startup issues. Make sure the console is displaying a blue screen with information about the node.
Check the virtual machine console for the version/build number on the blue screen that it is displaying.
Check if the web interface is available and the interface is working.
Login into the vRO interface and verify that authentication is working.
Run a basic workflow.
Remove the virtual machine snapshot.
Screenshot(s)
Here are a couple of screenshots of the upgrade process and the end result after a successful upgrade:
Summary
So that was my short blog post about the vRealize Orchestrator Upgrade experience so far for version 8.X. I hope it was useful. In most cases, there were problems with an expired account or an incorrect SSO password.
It would be nice if the upgrade process would validate the entered SSO password instead of hanging for hours in a crashed upgrade state without returning any error message to the console or shell session.
Thanks for reading and see you next time! Please respond in the comment section below if you got any remarks :).
In this blog post, I am showing a simple vRealize Orchestrator action that receives information about vRealize Orchestrator nodes. This can also be used against remote nodes to compare orchestrator versions between different nodes. It displays the product version, product build, and API version.
So why do you want to verify that? Lately, a hot topic surrounding the vRealize Orchestrator software is migrations. This is because most customers are moving away from version 7 to version 8 (here you see vRO 8.X in action). So as a VMware consultant, you run into questions from customers about compatibility and integration use cases.
Below I will share the code and a video about using the action. You mean workflow right? No since vRO 8.0 you can run the action directly you do not need a workflow around it.
Code explained
Some explanation about the action called “troubleshootVroVersion“:
The action requires one input parameter that is called ‘fqdn’. Here you enter for example (vro.domain.local). This action detects which URL and port are required so it automatically supports the following scenarios:
This can be a standalone node, an embedded node (inside vRA), the central load balancer in front of the nodes.
There is support for the vRealize Orchestrator 7.X version and vRealize Orchestrator 8.X version.
No authentication is required because the leveraged API page is publically available without authentication.
The only port required between the Orchestrator that is executing the action and the remote Orchestrator is HTTPS TCP 443.
vRO Configuration
Here is an image of the configured vRO Action. You can see the input and return type configured. Also, you see the configured language that is used “JavaScript“.
Prev
Next
Video
I have created a recording of a vRealize Orchestrator node running the action against itself. This can also be done against a remote vRealize Orchestrator node as explained before. This might also help somebody to create the action on his own orchestrator.
Code
Here is the code for the action and also the action configuration details for creating the action in vRealize Orchestrator:
// Input validation
if (!fqdn) {
throw "The input variable 'fqdn' is null, this is not allowed!";
}
// Determine vRO Port
try {
// Port 8181
url = "https://" + fqdn + ":8181/vco/api/about";
// Create URL object
var urlObject = new URL(url);
// Retrieve content
var result = urlObject.getContent() ;
// Message
System.log ("Found a vRealize Orchestrator node on port 8181");
}
catch (error) {
System.log ("No vRealize Orchestrator node found on port 8181 (" + error.message + ")");
}
try {
// Port 443
url = "https://" + fqdn + ":443/vco/api/about";
// Create URL object
var urlObject = new URL(url);
// Retrieve content
var result = urlObject.getContent() ;
// Message
System.log ("Found a vRealize Orchestrator node on port 443");
}
catch(error) {
throw "Could not find any vRealize Orchestrator node on port 443 & 8181 (" + error.message + ")";
}
// JSON Parse
try {
// Parse JSON data
var jsonObject = JSON.parse(result);
}
catch (error) {
throw "There is an issue with the JSON object (" + error.message + ")";
}
// Output data to screen
try {
System.log("===== " + fqdn + " =====");
System.log("Version: "+ jsonObject.version);
System.log("Build number: "+ jsonObject["build-number"]);
System.log("Build date: "+ jsonObject["build-date"]);
System.log("API Version: "+ jsonObject["api-version"]);
}
catch (error) {
throw "There is something wrong with the output, please verify the JSON input (" + error.message + ")";
}
GIT
Here is the Git Repository related to the code as shown above. The action used in the blog post is called “troubleshootVroVersion.js” inside the Git repository that is available on this URL.
Wrap Up
So that is it for today. In this blog post, I showed you an action to retrieve quickly some information about the Orchestrator version. As you can see in the code it is using a JSON object that is retrieved from a URL. This code is because that part easily usable for other items. So happy coding in vRO and see you next time!
When running VMware vRealize Orchestrator 8.X at some point in time you need to install a hotfix. When performing this operation at a customer I was running into an issue, I could not find the link on the VMware website in the first place.
After some searching, I found the location so I thought lets write a small blog post about locating the patch files on the VMware website.
Keep in mind: this blog post is focused on a standalone vRealize Orchestrator instance that requires a hotfix bundle. This is not for the embedded version inside vRealize Automation (vRA).
Download location
At first, we need to go to the appropriate location on the VMware website. This update and the latest patched installation files are in my opinion not easy to find. Because you would expect the files to be on the VMware Download page. So where do we need to go?!
Select the vRealize Orchestrator product and the appropriate version.
On this page, you will found OVA versions and iso version of the latest vRO hotfixes.
Prev
Next
Note:
*.OVA = is required for installing a new vRealize Orchestrator instance.
*.ISO = is required for patching a currently running vRealize Orchestrator instance.
vRealize Orchestrator Install Hotfix
Here is a short description of how to install a vRealize Orchestrator 8.X hotfix. Keep in mind when writing this blog post vRealize Orchestrator 8.2 did not have a hotfix yet! So far I figured out a difference between the releases:
In the blog post were are going to automatically create Business Groups in vRealize Automation 7.X. This can be handy when a customer has a lot of Business Groups and adds additional Business Groups overtime. So it was time to write a little bit of code that makes my life easier.
I wrote it in the first place for using it in my lab environment to set up vRealize Automation 7.X quickly for testing deployments and validating use cases.
Advantages of orchestrating this task:
Quicker
Consistent
History and settings are recorded in vRealize Orchestrator (vRO)
Environment
My environment where I am testing this vRO workflow is my Home Lab. At home, I have a Lab environment for testing and developing stuff. The only products you need for this workflow are:
vRealize Automation 7.6 in short vRA.
vRealize Orchestrator 7.6 in short vRO.
Note: The vRealize Automation endpoint must be registered to make it work.
vRealize Orchestrator Code
Here is all the information you need for creating the vRealize Orchestrator workflow:
Workflow Name: vRA 7.X – Create Business Group
Version: 1.0
Description: Creating a vRealize Automation 7.X Business Group in an automated way.
Inputs:
host (vCACCAFE:VCACHost)
name (string)
adname (string)
Outputs:
None
Presentation:
See the screenshots below.
Here is the vRealize Orchestrator code in the Scriptable Task:
// Variables
var domain = "company.local";
var mailDomain = "company.com";
// Input validation
if (!domain) {
throw "Defined variable 'domain' cannot be null";
}
if (!mailDomain) {
throw "Defined variable 'mailDomain' cannot be null";
}
if (!host) {
throw "Input variable 'host' cannot be null";
}
if (!name) {
throw "Input variable 'name ' cannot be null";
}
if (!adname) {
throw "Input variable 'adname' cannot be null";
}
// Construct Group Object
var group = new vCACCAFEBusinessGroup();
group.setName("BG-" + name);
group.setDescription("vRA Business Group: BG-" + name);
group.setActiveDirectoryContainer("");
group.setAdministratorEmail("vra-admin" + "@" + mailDomain);
group.setAdministrators(["vra-admin@vsphere.local", "vra_" + adname + "@" + domain]);
group.setSupport(["vra-admin@vsphere.local", "vra_" + adname + "@" + domain]);
group.setUsers(["vra_" + adname + "@" + domain]);
// Create the group; return the ID of the group.
var service = host.createInfrastructureClient().getInfrastructureBusinessGroupsService();
var id = service.create(group);
// Get the SubTenant entity from vRA
group = vCACCAFEEntitiesFinder.findSubtenants(host , "BG-" + name)[0];
// Add custom property to Business Group
vCACCAFESubtenantHelper.addCustomProperty(group, "Company.BusinessGroup", name, false, false);
// Create update client and save the local entity to the vRA entity
var service = host.createAuthenticationClient().getAuthenticationSubtenantService();
service.updateSubtenant(group.getTenant(), group);
Screenshots
Here are some screenshot(s) of the Workflow configuration that helps you set up the workflow as I have done!
Wrap-up
This is a vRealize Orchestrator workflow example that I use in my home lab. It creates vRealize Automation Business Groups to improve consistency and speed.
Keep in mind: Every lab and customer is different. In this workflow I use for example the prefix BG- for Business Groups. What I am trying to say is modify it in a way that is bested suited for your environment.
Thanks for reading and if you have comments please respond below.
I will not go into full detail in this blog post. Just a basic instruction on how to resolve the issue in vRealize Orchestrator 7.6. More background information can be found over here with additional screenshots.
Note: vRealize Orchestrator 7.6 was released on 11-04-2019 and can be downloaded over here. The vRealize Orchestrator 7.6 release notes can be found over here.
No Workflow Output
Let’s start with a small introduction to the issue. After an upgrade from vRealize Orchestrator 7.5 to vRealize Orchestrator 7.6 the (legacy client) is not able to show any workflow logs after executing a workflow run.
To make it perfectly clear… the workflow is executed and is working fine. The logs are just not displayed in the vRealize Orchestrator Client.
Here is an example, the workflow has been executed and it should output information but the logs tab is empty. Keep in mind: this image is from a vRO 7.4 instance but looks identical to vRO 7.6.
Prev
Next
Restore the workflow output
Here are the commands for resolving the issue in vRealize Orchestrator ( vRO) 7.6 . The fix can be applied in under 10 minutes by a system administrator.
Before removing the files it is good practice to make sure you have a backup or virtual machine snapshot of your vRO appliance.
### Step 01: Start an SSH session with the vRealize Orchestrator Appliance (use for example Putty).
### Step 02: Login with root credentials
### Step 03: When you run the following command multiple files will be shown:
ls -l /var/log/vco/app-server/scripting.log_lucene*
### Step 04: Stop the Orchestrator service
service vco-server stop
### Step 05: Remove the log files
rm -rf /var/log/vco/app-server/scripting.log_lucene*
### Step 06: Start the Orchestrator service
service vco-server start
### Step 07: Open the vRealize Orchestrator Client
### Step 08: Execute a workflow and logging should be working again.
I have tested it so far on two vRealize Orchestrator 7.6 appliances that were upgraded from vRealize Orchestrator 7.5. In both cases the upgrade was successful but the workflow output was not working.
There might be some vRO 7.5 to vRO 7.6 upgrades that will work without issues… like an Orchestrator that is just sitting idle or maybe a clean install that is directly upgraded from 7.5 to 7.6?
If you got any comments or tips please respond below!
I ran into an error message today with vRealize Automation (vRA). The error message that came up was: Failed to convert external resource Prod-Fin-00012. The issue occurred in vRA version 7.3.1.
Inside the vRealize Automation portal, I tried to upgrade virtual machine hardware but it failed directly when issuing the request. Strange thing was it was working a couple of day ago. After some investigating the error also came back on other day-2 tasks. So it was time to dive deeper into the issue.
Here is a screenshot of the issue:
The Cause
So let us think about what vRealize Automation is performing, it is executing a task on a virtual machine. To perform this it needs to talk to vCenter Server and to talk to vCenter Server it uses vRealize Orchestrator.
Here is a simple overview of the communication that happens in this case. vRealize Automation is communicating to vRealize Orchestrator and vRealize Orchestrator is communicating to vCenter Server.
Error messages
The following error messages were found on the following systems:
https://LAB-VC-A.Lab.local:443/sdk (unusable: java.lang.ClassCastException: com.vmware.vcac.authentication.http.spring.oauth2.OAuthToken cannot be cast to com.vmware.vim.sso.client.SamlToken)
As you can see here vRealize Orchestrator has communication issues with VMware vCenter Server. This issue needs to be addressed for vRealize Automation.
Screenshots:
The Solution
After finding the vRealize Orchestrator vSphere endpoints in an error state it was clear that this was the issue. vRealize Orchestrator is not successfully communicating with vCenter Server so this needs to be addressed.
Procedure:
Open the vRealize Orchestrator Client (https://%vro-node-fqdn%).
Login with administrative credentials (example: administrator@vsphere.local).
Navigate to the following location “Library > vCenter > Configuration“.
Run the following workflow “Remove a vCenter Server instance” (screenshot 01 & screenshot 02).
Run the following workflow “Add a vCenter Server instance” (screenshot 03 & screenshot 04).
Validate the vRealize Orchestrator Endpoint Status (screenshots 05).
How to upgrade vRealize Orchestrator 7.4 to vRealize Orchestrator 7.5 or to be more precise… migrate! Since the release of vRealize Orchestrator 7.5 a couple of weeks ago the update/upgrade option with the vamicli and appliance management interface is not available (to my surprise).
A quick introduction to how I got in that situation: In my Home Lab my main vRealize Orchestrator appliance is running version 7.4.0 and is responsible for some day-to-day Orchestration of my multiple environments.
You can no longer upgrade to the Orchestrator appliance 7.5, you can only migrate to it.
vRealize Orchestrator 7.5 – Release notes
For the people that are is still running way older versions: Upgrading vRealize Orchestrator Appliance from version 5.5.x to 7.5 is not supported. You must upgrade your vRealize Orchestrator Appliance 5.5.x to 6.0.x first and then migrate to 7.5.
Environment
The following components were running in my environment and have been tested. Note: this part of my Lab environment is not running vRealize Automation. So I have not tested the migration with external vRO nodes in combination with vRealize Automation.
A single vCenter Server 6.5.0 Update 2 (with an embedded PSC)
A single vRealize Orchestrator 7.4.0 (external)
Scenarios
There are two options available. The first option is moving all data between the old and new vRealize Orchestrator. The second option is to migrate vRealize Orchestrator with the migration wizard. The second option is the one VMware recommends. The first option can be easier in some cases, some advantages are you retain your IP address, hostname and SSL certificates.
Both options are written down on this page.
vRO export data and redeploy
I have chosen for this scenario because this machine is only connected to a vCenter Server and can be reastablished very fast. Another reason is that the current vRO instance has been running since version vRO 7.0 and has been upgraded more than seven times in about 2.5 years. So a new clean install ain’t a bad thing!
Procedure:
Create a package in the vRealize Orchestrator Client with all your created workflows, actions and resource elements.
Save the package on a save place.
Remove the registration from vCenter Server (if they are connected). Workflows “Unregister a vCenter Server extension” & “Remove a vCenter Server instance“.
Poweroff the current vRO appliance.
Rename the appliance to %vm-name%.old (for example).
Deploy a new vRealize Orchestrator Appliance on the same IP address and FQDN.
Upgrade the virtual hardware.
Walkthrough the vRealize Orchestrator configuration wizard.
(Optional) install the SSL certificates.
Import the package.
Register with vCenter Server. Workflows “Add a vCenter Server instance” & “Register vCenter Orchestrator as a vCenter Server Extension“.
Screenshot(s):
The old and new vRealize Orchestrator appliances inside the vSphere Web Client.
vRO Migration
The migration path is performed in the following way (the official documentation is extensive, the link is listed below). The migration is a good option for an Orchestrator that is connected to a lot of extensibility and has a lot of plugins installed. The biggest issue for me was the new IP address, FQDN and new certificates required.
Note: Migrations with vRealize Orchestrator Clusters are not described here. There are a couple of small items you need to check in the migration manual.
Prerequisites:
Your source Orchestrator is running at least version 6.X.
Make sure no workflows are running.
Stop the Orchestrator services on the source Orchestrator.
Make sure SSH is enabled on both the source and destination Orchestrator.
Make sure no firewall is blocking traffic for the migration.
Create backups from the source and destination Orchestrator.
Procedure:
Register a new vRealize Orchestrator appliance in your IPAM solution.
Deploy a new vRealize Orchestrator next to the currently running.
Upgrade Virtual Machine Hardware
Power-on the vRealize Orchestrator appliance.
(Optional) Install new SSL Certificates.
Navigate with a browser to the Appliance Management interface (https://%FQDN%:5480).