Search the VMware Knowledge Base (KB)
View by Article ID

Upgrading Multiple Endpoint Operation Management Agents Simultaneously from a Script (2138748)

  • 1 Ratings
Language Editions

Details

Note: This KB holds good for the following upgrade paths of the Endpoint Operations Management agent:
  • From  versions 6.1, 6.2, 6.2.1,  and 6.3 to 6.4
  • From versions 6.1 and 6.2 to 6.2.1
  • From version 6.1 to 6.2

For steps to upgrade the Endpoint Operations Management agent version 6.2 and 6.2.1 to 6.3, see KB 2146446.


You can use a Python script to upgrade multiple agents simultaneously. The script supports input as a CSV file that contains comma-separated IPv4 or FQDN addresses of the platforms on which the agents are running. This script is attached to this article in the Attachments section.

The script also supports a JSON file, which contains a collection of resources that the agent to be upgraded monitors. This allows you to use the REST query that provides your required list of resources, and then to upgrade all agents that monitor those resources.

To upgrade a single agent, see KB 2137709.

Arguments

  • user
    The vRealize Operations Manager user name. The user must have the AgentManager role and sufficient permissions to invoke REST calls and to edit resources. Permissions are described in the Prerequisites section. (mandatory)
  • password
    The password for the vRealize Operations Manager user. (mandatory)
  • address
    The IP address or FQDN of the vRealize Operations Manager 6.2 server. (mandatory)
  • [--input_file [input_file ]]
    The CSV or JSON input file. You must use either this argument, or --upgrade_all_agents, but not both. (optional)
  • [--upgrade_all_agents]
    Enables you to upgrade all the agents in the environment. Use this argument only if you are certain that you want to upgrade your entire environment. In a larger environment, the process could be time consuming. (optional)
  • [--bundles_folder_location [location]]
    The relative path to folder in which the agent upgrade files will be located. For example, bundles/6.2.0/ specifies that the bundle files will reside in <VCOPS_BASE>/user/plugins/inbound/agent_adapter/conf/plugins/agent_plugins/bundles/6.2.0
    If you do not specify this argument, the default folder is used. VMware recommends that you locate different upgrade bundles in separate folders. (optional)
  • [--bundle_file_name [file name]]
    Enables you to disable the automatic bundle name resolution feature.
Caution
Do not use this option if you are upgrading agents that are incompatible with the target operating system or architecture (32-bit/64-bit). Running a platform-specific or architecture-specific command for an agent that runs on a different platform will damage the agent. (optional)
  • [--batch_size [size]]
    Defines the number of agents that are simultaneously upgraded. The default batch size is 20. (optional)

Prerequisites

Verify that you have satisfied the following prerequisites before you run the upgrade. 
  1. Python 2.7.9 or higher, but not Python 3.0

  2. Python Language Bindings Package for vRealize Operations Manager
    The bindings package and installation instructions are downloadable from the vRealize Operations Manager API Web page ( https://<vR Ops>/suite-api/ )

  3. Download the agent upgrade bundle that is appropriate for the operating system and architecture on which the agent runs, from the product download page.
    a. On the Product Downloads tab, locate vRealize Operations Manager 6.2.0a under Standard, Advanced, and Enterprise.
    b. For the Standard, Advanced, or Enterprise level of vRealize Operations Manager 6.2.0a, click Go to Downloads.
    c. On the Download Product page, scroll down to Agent Upgrade Bundle, and click Read More.
    d. To download the agent upgrade bundle, click Download Now.

  4. Agent upgrade bundles must be located on all vRealize Operations Manager nodes, including remote collectors, as follows:

    Bundle files must reside in:
    <VCOPS_BASE>/user/plugins/inbound/agent_adapter/conf/plugins/agent_plugins/bundles/<bundle version>/
    - On Linux/Unix operating systems, use $VCOPS_BASE
    - On Windows operating systems, use %VCOPS_BASE%

    Different versions of agent bundles must reside in separate directories. For example:
    Bundles for version 6.2 could reside in:
    <VCOPS_BASE>/user/plugins/inbound/agent_adapter/conf/plugins/agent_plugins/bundles/6.2.0/
    Bundles for version 6.2.x could reside in:
    <VCOPS_BASE>/user/plugins/inbound/agent_adapter/conf/plugins/agent_plugins/bundles/6.2.x

  5. Verify that the user who is running the upgrade process has the following permissions.
    - AgentManager role
    - Access to all EP Ops Adapter objects
    - The All other Read, Write APIs and Read access to APIs permissions under REST API
    - The Edit permission under Resource Management

For more information about access control, see Creating User Roles.

For more information about working with Endpoint Operations Management agents, see the vRealize Operations Manager documentation center.
 

Solution

Select one of the following options, depending on whether you are upgrading all agents or specific agents.

Upgrading Specific Agents

To upgrade specific agents, follow these steps:
  1. Prepare an input file in CSV or JSON format that contains the necessary information about the agents you are upgrading.

    For example, in a Linux environment, to create an input JSON file that returns a list of Windows and Linux resources, you can run the following command:

    curl -k -u <user>:<password> -H "X-vRealizeOps-API-use-unsupported: true" -H "Content-Type: application/json" -H "Accept: application/json" https://<vrops address>/suite-api/api/resources?adapterKind=EP%20Ops%20Adapter&resourceKind=Linux&resourceKind=Windows" | python -m json.tool > <output file name>.json

  2. Change directory to the download directory.

  3. Run the attached python script as follows:

    python agent-bundle-upgrade.zip <user> <password> <vRealize Operations Manager IP address/FQDN address> --input-file=<path to the CSV or JSON input file> --bundles_folder_location=<Agent Bundle Files Location>

    If you follow the example provided in the Prerequisites section, Agent Bundle Files Location is bundles/6.2.0.

  4. Check the generated status report agent-bundle-upgrade-summary.txt.   

Upgrading All Agents

To upgrade all the agents in the vRealize Operations Manager environment, follow these steps:
  1. Change directory to the download directory.

  2. Run the attached python script as follows:

    python agent-bundle-upgrade.zip <user> <password> <vRealize Operations Manager IP address/FQDN address>> --bundles_folder_location=< Agent Bundle Files Location > . --upgrade_all_agents 

    If you follow the example provided in the Prerequisites section, Agent Bundle Files Location is bundles/6.2.0.

  3. Check the generated status report agent-bundle-upgrade-summary.txt. 

Example of Bulk Update

This example runs the upgrade from the vRealize Operations Manager vApp. The required file is attached to this article.

  1. On the vRealize Operations vApp, run: $ export PATH=/usr/lib/vmware-vcopssuite/python/bin:$PATH
  2. Run: $ python --version
    The result displays Python 2.7.9.
  3. Get Python Language-Bindings (vcops-python.zip), which is attached to this article.
  4. Run: create /tmp/python-stuff
    Then, copy vcops-python.zip into this directory, and unzip it there.
  5. Run: cd /tmp/python-stuff
  6. Run: $ python setup.py install
  7. Run: $ cd /usr/lib/vmware-vcops/user/plugins/inbound/agent_adapter/conf/plugins/agent_plugins
  8. Create the directory named: /usr/lib/vmware-vcops/user/plugins/inbound/agent_adapter/conf/plugins/agent_plugins/bundles/6.2.0
  9. Download End_Point_Operations_Agent_Upgrade_Bundles.zip from myVMware > Agent Upgrade Bundle.
  10. Copy End_Point_Operations_Agent_Upgrade_Bundles.zip (450MB) into this directory, and unzip it there.
  11. Get agent-upgrade-bundle.zip (15KB), which is attached to this article.
  12. Copy agent-upgrade-bundle.zip to the directory named: 
    /usr/lib/vmware-vcops/user/plugins/inbound/agent_adapter/conf/plugins/agent_plugins
  13. Run $ python agent-bundle-upgrade.zip admin VMware1\! your-vrops-name-or-ip --bundles_folder_location=bundles/6.2.0/. --upgrade_all_agents
    Note: You must spell the password of VMware1! as VMware1\! (with the backslash, and no quotation marks).

Troubleshooting

Use the following information to troubleshoot upgrade issues.
 
You can also find data to assist in troubleshooting in the following log files:
  • agent-bundle-upgrade.log in the current directory.
  • aim-agent-bundle-upgrade.log on the vRealize Operations Manager collector machines.
To view the file, go to Administration > Support > Logs and select the log file under OTHER.
  • Agent bundle upgrade status isFAILED_TIMEOUT.
    a. Verify that the agent is up and running.
    b. Check for network latency between the agent and vRealize Operations Manager nodes.

  • Agent bundle upgrade status isFAILED.
    Verify that the agent has rolled back to the previous version and continues to use the previous bundle.

  • User Authentication for Running the Upgrade Commands
    In the event that your user name or password includes any non-alpha numeric characters that might be misread by the shell, escape the characters. For example, change u$er to u\$er.  

Known Issues

Known issues relating to upgrading Endpoint Operations Management agents are documented in the vRealize Operations Manager 6.2 Release Notes.

Additional Information

For translated versions of this article, see:

Attachments

Request a Product Feature

To request a new product feature or to provide feedback on a VMware product, please visit the Request a Product Feature page.

Feedback

  • 1 Ratings

Did this article help you?
This article resolved my issue.
This article did not resolve my issue.
This article helped but additional information was required to resolve my issue.

What can we do to improve this information? (4000 or fewer characters)




Please enter the Captcha code before clicking Submit.
  • 1 Ratings
Actions
KB: