UPGRADING VRA WITH VRLCM AND JAVA VERSIONS

I recently upgraded an instance of vRA from 7.2 to 7.5 and rather than do it the manual way I used VMware’s vRealize LifeCycle Manager (version 2.0 update 3).

Everything was going great and according to plan, the vRLCM pre-requisites checker made short work of all of the checks you need to do before you start an upgrade of vRA. You can see below vRLCM does a great job of keeping you informed of the current progress and in a really elegant way.

Upgrading with vRLCM

However! when it came to upgrading the IaaS servers, it failed and gave me this lovely error message.

1 com.vmware.vrealize.lcm.common.exception.EngineException: { "status" : "Failed" , "statusText" : "Upgrade failed." , "commands" : [{ "node" : { "nodeHost" : "web1.definit.local" , "version" : "7.2.0.9518" , "nodeType" : "Database" , "nodeId" : "EE5A021D-2A11-4158-9EEC-9A5F758E91DD" }, "continueOnError" : false, "command" : "upgrade-server" , "log" : null, "parameters" : [], "error" : "Failed to execute command upgrade-server on node web1.definit.local" , "validate" : false, "waitAfterInSeconds" : null, "status" : "Failed" , "message" : "Upgrading server components for node web1.definit.local. Note: This may take up to 30 minutes." }, { "node" : { "nodeHost" : "web1.definit.local" , "version" : "7.2.0.9518" , "nodeType" : "DemWorker" , "nodeId" : "EE5A021D-2A11-4158-9EEC-9A5F758E91DD" }, "continueOnError" : false, "command" : "upgrade-dem" , "log" : null, "parameters" : [], "error" : null, "validate" : false, "waitAfterInSeconds" : null, "status" : "Pending" , "message" : "Upgrading DEM components for node web1.definit.local ..." }, { "node" : { "nodeHost" : "web1.definit.local" , "version" : "7.2.0.9518" , "nodeType" : "vSphereAgent" , "nodeId" : "EE5A021D-2A11-4158-9EEC-9A5F758E91DD" }, "continueOnError" : false, "command" : "upgrade-agent" , "log" : null, "parameters" : [], "error" : null, "validate" : false, "waitAfterInSeconds" : null, "status" : "Pending" , "message" : "Upgrading proxy agent component for node web1.definit.local ..." }, { "node" : { "nodeHost" : "web1.definit.local" , "version" : "7.2.0.9518" , "nodeType" : "ManagerService" , "nodeId" : "EE5A021D-2A11-4158-9EEC-9A5F758E91DD" }, "continueOnError" : false, "command" : "toggle-manager-service-failover-mode" , "log" : null, "parameters" : [{ "name" : "NewState" , "value" : "Enabled" }], "error" : null, "validate" : false, "waitAfterInSeconds" : null, "status" : "Pending" , "message" : "Enabling ManagerService automatic failover mode for node web1.definit.local ..." }], "startTime" : 1554298002.529656} 2 at com.vmware.vrealize.lcm.core.vra70.task.upgrade.VraIaasUpgradeTask.execute(VraIaasUpgradeTask.java:104) 3 at com.vmware.vrealize.lcm.platform.automata.service.Task.retry(Task.java:80) 4 at com.vmware.vrealize.lcm.platform.automata.core.ExecutionTask.run(ExecutionTask.java:39) 5 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 6 at java.util.concurrent.ThreadPoolExecutor $Worker .run(ThreadPoolExecutor.java:624) 7 at java.lang.Thread.run(Thread.java:748)

While this error maybe clear to some for me it was not very helpful.

So I reverted upgrading the IaaS components manually and this was the more helpful error message I encountered.

1 [master] vra1:/usr/lib/vcac/tools/upgrade # ./upgrade 2 IaaS upgrade is pending: Waiting for VA services to start... 3 All VA services have started. 4 Upgrade of IaaS to version 7.5.0.14711 is starting. 5 Upgrading server components for node web1.definit.local. Note: This may take up to 30 minutes. 6 Executing shell command: /usr/sbin/vra-command execute --node EE5A021D-2A11-4158-9EEC-9A5F758E91DD --timeout 120 --json true upgrade-server 7 Command execution result: 8 Command id: 4bd2674e-1b93-6151-245a-4d7352811156 9 Type: upgrade-server 10 Node id: EE5A021D-2A11-4158-9EEC-9A5F758E91DD 11 Node host: web1.definit.local 12 Result: Java version 1.8 update 181 or higher (64-bit) must be installed, the environment variable JAVA_HOME must be set to the Java install folder, and %JAVA_HOME% \b in \j ava.exe must exist. 13 Error: {u '10031' : [{u 'resultMsg' : u 'Java version 1.8 update 181 or higher (64-bit) must be installed, the environment variable JAVA_HOME must be set to the Java install folder, and %JAVA_HOME%\\bin\\java.exe must exist.' , u 'resultDescr' : None}]} 14 Status: FAILED 15 Failed to execute command upgrade-server on node web1.definit.local 16 Traceback (most recent call last): 17 File "./upgrade" , line 628, in executeCommand 18 result = self.execVraCommandWithRetry(command.command, command.node, command.parameters, command.continueOnError, command.validate) 19 File "./upgrade" , line 377, in execVraCommandWithRetry 20 raise Exception(err_template % (command, node[ 'nodeHost' ])) 21 Exception: Failed to execute command upgrade-server on node web1.definit.local 22 Validation failed on node web1.definit.local. 23 Failed to execute command upgrade-server on node web1.definit.local 24 Traceback (most recent call last): 25 File "./upgrade" , line 860, in execute 26 self.executeCommand(command) 27 File "./upgrade" , line 648, in executeCommand 28 raise e 29 Exception: Failed to execute command upgrade-server on node web1.definit.local 30 Failed to execute command upgrade-server on node web1.definit.local 31 Traceback (most recent call last): 32 File "./upgrade" , line 865, in execute 33 raise e 34 Exception: Failed to execute command upgrade-server on node web1.definit.local 35 Upgrade failed. 36 Restoring Postgres replication mode... 37 Postgres replication mode set to SYNC.

Essentially what this all boils down to is that vRA -NEEDS- Java version 181. While the VMware documentation says 181 or later, (I had a slightly later version install on the IaaS server) the upgrade process just fails horribly.

So I removed JAVA from the IaaS server and installed specifically the 181 version and voila the manual upgrade was successful. Interestingly I did try the automatic upgrade via vRLCM after install Java 181 but it still failed.

Either way it is something to watch out for.

Share this post

Please enable JavaScript to view the comments powered by Disqus.