VMware Cloud Community
phreeme
Contributor
Contributor

vRO AWS Plugin

Hi,

I have successfully installed "VMware vRealize Orchestrator Plug-In for Amazon Web Services 1.0.0.2" on our vRA environment and was able to add an amazon account as well.

Problem is that when executing the "Add Amazon Account" workflow, not all regions are picked up and added by the plugin.  i.e. us-east-2 is missing.

Looking at the Add Amazon account workflow in more detail, inside Get Endpoint URLs, the following script does not seem to get all regions and load to the endpoints array.

var regions = AWSRegionManager.findAllRegions();

endpoints = new Array();

for (var i = 0; i < regions.length; i ++) {

endpoints.push(regions[i].getEndpoint());

}

It smells like a bug for this aws vro plugin within "Add Amazon Account" workflow...

Anyone encountered this issue as well?

0 Kudos
8 Replies
iiliev
VMware Employee
VMware Employee

Hi,

Check the following thread - https://communities.vmware.com/thread/569649

0 Kudos
phreeme
Contributor
Contributor

I saw that link already.  I am not sure if it applies to us-east-2 as I didnt see anywhere that it uses a different auth then us-east-1.  Also, I find it hard to believe that us-east-2 was not hard-coded in the plugin; not to mention how bad coding practice it is to hard code regions instead of just dynamically retrieving them.

0 Kudos
iiliev
VMware Employee
VMware Employee

OK, I did some more research.

For communication with AWS, the plug-in uses the official AWS SDK for Java - https://aws.amazon.com/sdk-for-java/ . The latest plug-in build uses version 1.10.1 of this SDK, which is quite an old version. Looking at Git history of the SDK (available on GitHub), it seems the support for us-east-2 has been added on Oct 18th, 2016, in version 1.11.44 of the SDK. Formal announcement of availability of this region is also around this time - Announcing the AWS US East (Ohio) Region

So it seems very likely that the plug-in does not support this region (plus few others) simply because it is using an older version of the AWS SDK.

BTW, I didn't find any hard-coded region list in the plug-in, it seems it get it from the SDK. So to support the most recent regions, the plug-in needs to be rebuild using the latest available AWS SDK.

0 Kudos
phreeme
Contributor
Contributor

Thanks!

Do you know if vmware is planning to update their plugin with the latest aws sdk java?  If yes, when shall we expect an updated plugin?

Could we request from vmware to have this plugin updated?

If no help from vmware, do you have some direction on how consumers can rebuild the vmware aws plugin with the latest AWS Java SDK?

0 Kudos
iiliev
VMware Employee
VMware Employee

My current understanding is that at the moment no new releases of this plug-in are planned, just bug fixes for the current version.

But I might be wrong on this, so if you have an official point of contact with VMware, it's probably better to ask for an official statement for this plug-in.

The consumers cannot rebuild the plug-in with a newer version of AWS SDK as they do not have access to the source code of the plug-in (its code is not open source).

0 Kudos
gkostova
VMware Employee
VMware Employee

Hi,

There are no plans for new release of the plug-in till the end of this year at least. We will consider this for the future releases. What is your exact use case with AWS plug-in and do you have vRA environment? You can use this functionality through vRA as well.

Regards,

Galina

0 Kudos
wmichel
Contributor
Contributor

It is my understanding that VMware Cloud on AWS is not available in all regions in the USA.  I heard that from my account SE that strategic area is being deployed in a piecemeal way as the service begins to roll out globally.  He mentioned the UK might be next region that will come up.  I do not have or have seen a roadmap and schedule on what regions and dates the service will go live in certain regions.  So my guess what you are seeing is normal and will take time before all regions go live.

The only thing I have seen is the following statement and this might be why us-east-2 is missing.

"The service is initially available in the AWS US West (Oregon) region, allowing you to run a wide variety of workloads. This release enables delivery of data center extension, new application development and testing, and application migration use cases. "

Also, you can sign up to get updates at VMware Cloud

Thanks!

Wences

Thanks! Wences Michel Living the dream! 🙂
0 Kudos
jasnyder
Hot Shot
Hot Shot

I realize I'm late to the game on this but I've dealt with a similar issue before, so I'm providing this in case it helps.  The AWS SDK lets you use a custom regions.xml file, which you can copy locally to the vRO server and then modify JVM startup properties on the tcServer instance that runs vRO. 

Here are some steps.  I haven't tested these since vRO 6.x.  They should still work for 7.x.  It assumes you're on a Windows machine and have Putty available to SSH and PSCP to the vRO server.  Also, you'll need to grab the latest regions.xml file from the latest AWS SDK to do this.  I HIGHLY recommend doing this in a test capacity and thoroughly testing it before going forward with this.  Assume this is not supported by VMware.

  1. Copy the regions.xml file to the vRO server by using Putty SCP (pscp.exe) or another SCP client.  A sample PSCP command is listed below for reference:

    pscp c:\temp\regions.xml root@vroserver:/var/lib/vco/configuration/conf/regions.xml

  2. Log in to the vRO server via SSH using Putty or another SSH client
  3. Run the following command to change the ownership of the regions.xml file to the vco user (this facilitates vRO being able to read the file)

    chown vco:vco /var/lib/vco/configuration/conf/regions.xml

  4. Run the following command to save a backup of the setenv.sh file that starts up the tcServer that runs vRO before editing it in the next step:

    cp /var/lib/vco/app-server/bin/setenv.sh  /var/lib/vco/app-server/bin/setenv.sh.bak

  5. Run the following command to edit the setenv.sh file that starts up the tcServer that runs vRO.

    vi /var/lib/vco/app-server/bin/setenv.sh

  6. Type /JVM_OPTS in vi to find the line that starts with ‘JVM_OPTS=’
  7. Hit the Insert key to change vi to --Insert-- mode
  8. Add the following text to the end of the line (be sure to still enclose it in the pre-existing end quotation)

    -Dcom.amazonaws.regions.RegionUtils.fileOverride=/var/lib/vco/configuration/conf/regions.xml -Dcom.amazonaws.regions.RegionUtils.disableRemote=1

    NOTE: there is no space between the dashes and the Dcom entries.  This should all be entered on a single line.  The full text of the JVM_OPTS= line is shown below for reference
     
  1. Hit the [Escape] key to exit –Insert—mode
  2. Type :wq and hit [Enter] to save the file and quit vi

  Run the following command to restart the vRO server so the options that were just changed can take effect:

service vco-server restart

0 Kudos