Quantcast
Channel: VMware Communities : All Content - vRealize Orchestrator
Viewing all 10285 articles
Browse latest View live

Proper way to map XaaS Type on vRA 7.X Catalog

$
0
0

I have the following scenario (opinions are always welcome):

 

I want to provision a Load Balancer as a Service using XaaS. So, to accomplish this task, I've used the vRO DynamicType Plugin to create this association tree:

 

Namespace: LoadBalancer

  • Device (the device itself)
    • Virtual Server (virtual server data such as source/destination address, fqdn and some profiles)
      • Pool (Pool with the servers)
        • Pool Member (Servers themselves)

 

Then, I've created a workflow to Create a new load balancer wich takes some input such as:

  • Network Environment: So I can determine wich of my load balancers will have the request virtual server created
  • Server List: For now, I'm using a datagrid wich basically receives Server Address and Port (Wich I still dont know how to properly validate each inclusion on this grid, but I guess this is another thread)
  • Domain Name: From a list, the user will pick up an allowed domain.
  • <Few other informations>

 

And the workflow output is a DynamicType:LoadBalancer.VirtualServer. When the workflow finishes, I create the output using DynamicTypeManager.makeObject(), which for some reason, does not return anything while debugging but I can see the data when refreshing the inventory.

 

That setted up, I created the following:

 

XaaS Custom Resource: DynamicType:LoadBalancer.VirtualServer to create a Virtual Server resource with the form that I wanted (somehow) display to the end user after workflow is finished.

XaaS Resource Mapping: Map the custom resource Virtual Server to orchestrator type DynamicType:LoadBalancer.VirtualServer with it's proper Map workflow

XaaS Blueprint: The XaaS itself, with the proper form and provisioned resource mapped to the output parameter.

 

When I request the XaaS blueprint thru the Catalog, the workflow does work and the load balancer is provisioned perfectly except that nothing returns to the end user, so, I cannot tell the user what's the FQDN that I just generated, the source ip address and some more information that my object have. The deployment screen just shows it's completed but no response information is displayed.

 

Am I missing something or is there a better way to accomplish this scenario?

 

Thanks in advance


vRO Cluster - Replica to Master not working

$
0
0

Hi guys,

    I implemented a plugin using the IEndpointConfigurationService to save configuration.

I have a cluster with 2 vRO servers (a Master Node and a Replica Node) running in Asynchronous Mode.

If I create the configuration in the Master Node, it is immediately replicated to the Replica Node (I can see it in the Inventory).

If I create the configuration in the Replica Node, I cannot see it in the Inventory from Master. But if I reboot the Master Node, the configuration appears in the Inventory.

 

Should it work both ways or only works from Master to Replica?

If it should work both ways, what would I be missing in the implementation or servers setup? Could it be something related to the Sync Mode?

vCenter 6.7u1 - Is support for vRO workflows included in feature complete HTML client?

$
0
0

Has anyone seen any indication if vRO workflows will be supported with the 6.7u1 HTML client?  Did this make the cut now that VMware is indicating that the html client is 100% feature complete?

SRM plugin - Get Protection Groups status

$
0
0

Hi there,

 

I'm trying to use the SRM plugin for vRO to get the status of the protection groups. I'm trying to get the status as apeares in the SRM console:

But, in vRO that info doesn't seems to exist:

How can I get the status of the Protection Groups?

Thanks a lot.

vRealize orchestrator 8.0 " 404 page not found"

$
0
0

Hello All,

 

I have successfully deployed the vro 8.0 and when i try to login to the https://appliance_IP , i get the following error:

 

404 page not found

 

 

I haven't done any configuration and would like to start using the new 8.0 vRO. Any help on this will be highly appreciated

How to construct a query for Server.findAllForType( type(string) , query(string) ) [vRO 7.6]

$
0
0

Most code I have seen that uses 'Server.findAllForType( type(string) , query(string) )' simply leave out the query and then iterate over the return to find the desired value(s). The built-in documentation for query states:

 

- query (string)

  (Optional) Custom query depending on plug-in implementation

 

 

(1) Where do I find the query specifications for the Orchestrator plugin? For example, if I want to find an Orchestrator Workflow by name how do I construct the query string?

 

(2) Where do I find the plug-in implementation specifications for the query if it's not already in the IDE help? The vRA and vSphere plug-ins come to mind but this is meant to be more general.

 

Thanks in advance for any help.

Work flow for rebooting linux server

$
0
0

i am new to vRO 7.6, i need to reboot the linux servers (5 servers) 

how should i need to create a workflow ? is there any already available work flow available ?

And if i create my workflow, where should i need to provide the list of server names

please help me 

Using .CSV files for PowerShell Scripts in vRO

$
0
0

I am familiar with PowerCLI but not so much vRO yet. My company wants me to use vRO to kick off this script. I know down the road I should convert it to native vRO modules of VMware, and using a .CSV probably not the best thing. But I want to at least get it working for now.

 

I have put my PowerShell script on the connected PowerShell host. And made an input for a mime attachment. When I run the workflow the output from the PSHost says it doesn't recognize my attachment. Part of the error says:

 

-csvfile MimeAttachment:ch.dunes.scripting.jsmodel.JSMimeAttachment@2dba85ee

Why is it not my regular .csv file here?

 

So I guess my question is can vRO put this file on my PSHost to execute the PowerShell script correctly as if I put the file there myself? Ex. ".\Script.ps1 -CSVFile File.csv"

Looking online for this question I have found that I need to do more scripting in vRO/what I'm trying to do is not possible. Any help greatly appreciated.


Filtering for AWS machines with getResourcesListWithData

$
0
0

This code is being used in an action to get Virtual Machines contained within a business group:

 

const resourceService = vcacCafeHost.createCatalogClient().getCatalogConsumerResourceService();

const conditions = [];

conditions.push(vCACCAFEFilterParam.equal("resourceType/id", vCACCAFEFilterParam.string("Infrastructure.Virtual")));

conditions.push(vCACCAFEFilterParam.equal("organization/subTenant/name", vCACCAFEFilterParam.string(subtenantName)));

const filters = [];

filters.push(vCACCAFEFilterParam.group([vCACCAFEFilterParam.and(conditions)]));

const query = vCACCAFEOdataQuery.query().addFilter(filters).addAscOrderBy(["name"]);

var oDataRequest = new vCACCAFEPageOdataRequest(1, PAGE_LIMIT, query).first();

var resources = [];

do {

     var resourcesList = resourceService.getResourcesListWithData(false, false, oDataRequest);

     resources = resources.concat(resourcesList);

     System.debug("Found Resources: " + resourcesList.length);

     oDataRequest = oDataRequest.next();

} while (resourcesList.length > 0);

 

I need another version that will get specifically AWS machines. I am aware that I can change the resourceType/id filter to "Infrastructure.Cloud", but that will give me Azure etc. as well. I'm guessing there may be another filter I can supply to do this, but can't find any documentation?

How to apply SDRS recommendations while adding a new disk

$
0
0

I am trying to solve an issue where currently, we have rather large datastore clusters (many datastores) but each datastore is running with ~15% free space.  We try to keep this around that threshold to ensure we can take snapshots for backups, but as a minimum, we want each DS to have > 500GB free space.

 

So currently in VRO, I have a check that looks at a new VM build, or a request for an additional disk, or disk extension, and it checks all the Datastores in the DS cluster to ensure that some datastore has enough room to accommodate the full size of the requested disks, with the wiggle room (500GB) - basically, go find the DS with the most free space, and see if it has [requested size] + [500GB] space available.  If not, it fails the WF, and doesn't do the operation.  We have SDRS run on a 12 hour interval so as to prevent IO stunning mid-day.

 

 

I would like to improve this to use SDRS recommendations to add the disk where space is available automatically, and apply any other SDRS migrations that might be necessary to accommodate.   For instance, if I have ~1.3TB free on each DS, and someone requests a 1.5TB drive, I'd like to be able to create the drive while applying DRS - push around the disks until I have enough room to put a 1.5 TB disk.  Right now, we instead add a new DS to the cluster, and then re-submit the request.

 

It looks like I should be able to use applyStorageDrsRecommendation_Task to do this.  According to the documentation (https://www.vmware.com/support/orchestrator/doc/vro-vsphere65-api/html/VcStorageResourceManager.html ) I should be able to use this with the AddDisk API:

 

 

 

Applies a recommendation from the recommendation list. Each recommendation can be applied only once. In the case of CreateVm and CloneVm a VirtualMachine is returned. Other workflows don't have a return value.

Requires Resource.ApplyRecommendation privilege on the storage pod. Additionally, depending on the workflow where this API is called from, it may require the privileges of invoking one of following APIs:

 

CreateVm {@link vim.Folder#createVm}

AddDisk {@link vim.VirtualMachine#reconfigure}

RelocateVm {@link vim.VirtualMachine#relocate}

CloneVm {@link vim.VirtualMachine#clone}

 

However, I'm not sure how to apply that when I go to run my reconfigVM_Task.

 

I found this thread: Adding multiple disks using SDRS on VRO

 

With the solution code:

 

  1. for (var i in myarray) { 
  2.   myVcTask = managedObject.applyStorageDrsRecommendation_Task(myKey); 
  3.   actionResult = System.getModule("com.vmware.library.vc.basic").vim3WaitTaskEnd(myVcTask, progress, pollRate); 
  4.   ... // other code inside loop 

 

I'm just not sure what myKey represents.  Would that just be my config spec?  The documentation suggests the only parameter for the applyStorageDrsRecommendation_Task is a string.   I was just going to modify (a copy of) the built-in Add Disk WF for my purposes:

 

var configSpec = new VcVirtualMachineConfigSpec();

var deviceConfigSpecs = new Array();

var deviceConfigSpec;

 

 

// Add/Create the disk

deviceConfigSpec = System.getModule("com.vmware.library.vc.vm.spec.config.device").createVirtualDiskFlatVer2ConfigSpec(

diskSize, datastore, scsiControllerKey, diskIndex, VcVirtualDiskMode.fromString(diskMode.name), thinProvisioned );

deviceConfigSpecs[0] = deviceConfigSpec;

 

 

// List of devices

configSpec.deviceChange = deviceConfigSpecs;

 

 

// Launch the reconfigVM task

task = vm.reconfigVM_Task( configSpec );

 

 

Any suggestions?

what is the fastest way to search for an object?

$
0
0

I have a workflow that needs to search for a specific portgroup by partial name. I know the vcenter and cluster it should be in. The largest venter environment has roughly 1600 portgroups across several clusters. WIth all the vcenters in vRO that number might be closer to 3000.

 

The first time I ran the workflow (option 1 below) it worked fine except is was a bit slow (took about 1.5 minutes). Subsequent runs were faster/almost instance so I think it might just be due to cache. I would prefer to have things more consistent and avoid random delays if possible.

 

Does anyone have any advice on which would be the best way in terms of speed? Is there's a 5th option that's better?

 

 

Option 1:

var vc = cluster.sdkConnection;
var filter = "myclustername";
var filter2 = "-xyz-"
var results = vc.getAllDistributedVirtualPortgroups(null,"xpath:name[contains(.,'" + filter + "') and contains(.,'" + filter2 + "')]");

 

There should only be 1 or 2 hits in the results so checking what I got back is fine.

 

 

Option 2:

var filter = cluster.name + ".*" + "-xyz-";
var re = new RegExp(filter, "i");
var allNetworks = cluster.network;

var results = new Array();

for each (network in allNetworks){
     if (network.name.search(re) != -1)     results.push(network); 
}

 

 

Option 3:

 

Server.findAllForType

 

I didn't try this as I figured it would try to search all vcenetrs in vRO so less efficent than option 1 and 2 where I can limit the scope of my search.

 

 

Option 4:

 

Using the property collector (I copy/pasted the samples workflows into an action to return the data I want). I can search for:

 

targetType = Network

properties = name

filter = mycluster-xyz-

 

but there's two issues:

 

1) Is there a way to search for wildcards? In some cases I might have mycluster-xyz- and in others I will have mycluster-123-xyz-. The first two options seem to handle this just fine but I don't see how to do this with property collector.

 

2) When I run my action twice in a row, the results from run 1 seem to appear in the results from run 2. For example:

run 1: looks for "mycluster-xyz-"

run 2: looks for "mycluster-abc-"

 

 

when I output the results, run 1 just has the xyz item while run 2 shows me both xyz and abc.

vRO 8 - Variables of type Any and NULL value

$
0
0

Hi guys,

 

I've noticed that when I have a variable of type Any and I do not set the value there are differences of behavior from vRO 7.x and vRO 8. At vRO 7.x a variable of type Any with value not set is = NULL. At vRO 8 the value is not NULL. This diference is making some workflows stop working. For example, the workflow Clone, Linux with Single NIC, has a variable "options" that I needed to set at a scriptable task to NULL to make the workflow works.

 

Is this an expected behavior? Can someone reproduce this behavior?

 

Thanks.

Saving output to a csv file

$
0
0

Hi,

 

I am new to vRO. My requirement is to save the VM details (like Name, cpu, RAM etc) to a csv file and save it in shared location.

 

Please help.

Linux / silent update VMWare-Tools

$
0
0

Hello,

 

I have made vRO workflow, which accesses our Linux (Ubuntu 18.4) boxes and initiates a system update via apt-get.

The script runs find, if I trigger it manually, but it hangs when called via VMWare Tools. I am sure it is because it prompts for some input (thou it doesnt when I run it manually).

It is really annoying that apt-get is so complex to configure for running non interactive..

 

I am already using the env, which is what I have found on the internet...

 

export DEBIAN_FRONTEND=noninteractive

export DEBIAN_PRIORITY=critical

 

Has anyone experienced similar - how can I 100% non interactive upgrade my machines?

 

Best regards, K

Clone, Linux with single NIC and SLES 15

$
0
0

I'm facing strange behaviour.

 

I have created SLES 15 template (VM version 11, configured as Linux/SLES12). When I clone and customize it with "Clone, Linux with single NIC", the VM is cloned, OS is correctly customized, but OS is marked as Other/Mac OS X 10.10 (64 bit).

I'm using the workflow for ages (for sles 11 and sles 12), and it always worked well.

I went through Orchestrator/vCenter/VMtools logs, but can't see any error there.

When I use slimple cloning WF (without customization) then cloned VM is marked as expected (Linux/SLES12).

Using Orchestrator 7.4.0.

 

Somebody of you have an idea, what could be wrong?

 

Thank you for every hint

Martin


ESXCLI from VCO

$
0
0

Hi all,

 

Is there a way to run a ESXCLI command to a host from VCO? Specifically running the command "esxcli system syslog reload"

vRO 8 - Slow Client Loading for user with limited permissions

$
0
0

Hi guys,

 

We have a user that has only access to run a few workflows. What is happening is that when the user try to logging at the client it takes a long time for the client to show the workflows that the user has permission. If I logging with an admin user all workflows are shown very fast.

 

vRO 8 - HTML5 Client.

 

Does someone else have noticed this behavior?

 

thanks.

Automate Import package from folder

$
0
0

In the vRO client UI, I can click the following button to import a package that was expanded to a folder on my local filesystem:

 

"Import package from folder" button

I know about the POST https://{address}:{port}/vco/api/packagesendpoint but this requires a binary package. Is there any possible way, even without use of the REST API, to automate the import of a package from folder? Perhaps a tool on the appliance that can do this if no REST method is available?

workflow to call vrops

$
0
0

Does anyone have a workflow to call vrops and set an item to maintenance mode? I'm trying to do it via rest calls (trying first in Postman) but was wondering if maybe something else exists to make things easier.

 

thanks

date time format

$
0
0

I use the "Operations client" (or HTML interface) for Orchestrator in English but the time/date format is the american one (mm/dd/yy, h:mm AM/PM) which is a bit confusing to us.

Is there a way to change it?

 

Thanks,

Viewing all 10285 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>