从一个脚本同时升级多个端点操作管理代理
search cancel

从一个脚本同时升级多个端点操作管理代理

book

Article ID: 342699

calendar_today

Updated On:

Products

VMware Aria Suite

Issue/Introduction

Symptoms:
免责声明:本文为 Upgrading Multiple Endpoint Operation Management Agents Simultaneously from a Script (2138748) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。


注意:本知识库文章适用于端点操作管理代理的以下升级途径:
  • 从版本 6.1、6.2、6.2.1 和 6.3 升级到 6.4
  • 从版本 6.1 和 6.2 升级到 6.2.1
  • 从版本 6.1 升级到 6.2

有关将端点操作管理代理从版本 6.2 和 6.2.1 升级到 6.3 的步骤,请参见 KB 2146446


可以使用 Python 脚本同时升级多个代理。脚本支持输入 CSV 文件,文件中包含运行代理的平台的 IPv4 或 FQDN 地址(以逗号分隔)。本文的“附件”部分随附了此脚本。

脚本还支持 JSON 文件,其中包含要升级的代理所监控的资源集合。这样便可以使用为您提供所需资源列表的 REST 查询,然后可以升级监控这些资源的所有代理。

要升级单个代理,请参见 KB 2137709

参数

  • user
    vRealize Operations Manager 用户名。用户必须具有 AgentManager 角色和足够的权限才能调用 REST 调用以及编辑资源。权限在“必备条件”部分进行了描述。(必填)
  • password
    vRealize Operations Manager 用户的密码。(必填)
  • address
    vRealize Operations Manager 6.2 服务器的 IP 地址或 FQDN。(必填)
  • [--input_file [input_file ]]
    CSV 或 JSON 输入文件。必须使用此参数或 --upgrade_all_agents,但不同时使用两者。(可选)
  • [--upgrade_all_agents]
    允许您升级环境中的所有代理。仅当您确定要升级整个环境时才使用此参数。在大型环境中,此过程可能会相当耗时。(可选)
  • [--bundles_folder_location [location]]
    代理升级文件将位于其中的文件夹的相对路径。例如,bundles/6.2.0/ 指定捆绑包文件将位于 <VCOPS_BASE>/user/plugins/inbound/agent_adapter/conf/plugins/agent_plugins/bundles/6.2.0 中。
    如果不指定此参数,则使用默认文件夹。VMware 建议将不同的升级捆绑包放置在单独文件夹中。(可选)
  • [--bundle_file_name [file name]]
    允许您禁用自动捆绑包名称解析功能。
注意
如果升级的代理与目标操作系统或架构(32 位/64 位)不兼容,请勿使用此选项。对在其他平台上运行的代理运行平台特定或架构特定的命令将损坏该代理。(可选)
  • [--batch_size [size]]
    定义同时升级的代理的数量。默认批处理大小为 20 个。(可选)

必备条件

在运行升级之前确认是否已满足以下必备条件。
  1. Python 2.7.9 或更高版本,但不能是 Python 3.0

  2. 适用于 vRealize Operations Manager 的 Python 语言绑定软件包
    可从 vRealize Operations Manager API 网页 (https://<vR Ops>/suite-api/) 上下载绑定软件包和安装说明

  3. product download page 上下载适用于运行代理的操作系统和架构的代理升级捆绑包。
    a. 在“产品下载”选项卡中,找到 StandardAdvancedEnterprise 下的 vRealize Operations Manager 6.2.0a
    b. 对于 vRealize Operations Manager 6.2.0a 的 Standard、Advanced 或 Enterprise 版本,请单击转至下载
    c. 在“下载产品”页面,向下滚动至代理升级捆绑包,然后单击阅读更多
    d. 要下载代理升级捆绑包,请单击立即下载

  4. 代理升级捆绑包必须位于所有 vRealize Operations Manager 节点上(包括远程收集器),如下所示:

    捆绑包文件必须位于:
    <VCOPS_BASE>/user/plugins/inbound/agent_adapter/conf/plugins/agent_plugins/bundles/<bundle version>/
    - 在 Linux/Unix 操作系统上,使用 $VCOPS_BASE
    - 在 Windows 操作系统上,使用 %VCOPS_BASE%

    不同版本的代理捆绑包必须位于单独目录中。例如:
    版本 6.2 的捆绑包可位于:
    <VCOPS_BASE>/user/plugins/inbound/agent_adapter/conf/plugins/agent_plugins/bundles/6.2.0/
    版本 6.2.x 的捆绑包可位于:
    <VCOPS_BASE>/user/plugins/inbound/agent_adapter/conf/plugins/agent_plugins/bundles/6.2.x

  5. 确认运行升级过程的用户拥有以下权限。
    - AgentManager 角色
    - 访问所有 EP Ops 适配器对象的权限
    - REST API所有其他读取、写入 API读取 API 权限的权限
    - 资源管理下的编辑权限

有关访问控制的详细信息,请参见 Creating User Roles

有关处理端点操作管理代理的详细信息,请参见 vRealize Operations Manager documentation center


Environment

VMware vRealize Operations Manager 6.2.x
VMware vRealize Operations Manager 6.1.x

Resolution

根据您要升级所有代理还是升级特定代理,选择以下选项之一。

升级特定代理

要升级特定代理,请按照以下步骤操作:
  1. 准备好 CSV 或 JSON 格式的输入文件,其中包含有关您要升级的代理的必要信息。

    例如,在 Linux 环境中,要创建可返回 Windows 和 Linux 资源列表的输入 JSON 文件,您可以运行以下命令:

    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</output>

  2. 将目录更改为下载目录。

  3. 运行随附的 python 脚本,如下所示:

    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>

    如果您遵循了“必备条件”部分提供的示例,Agent Bundle Files Location 即为 bundles/6.2.0

  4. 检查生成的状态报告 agent-bundle-upgrade-summary.txt

升级所有代理

要升级 vRealize Operations Manager 环境中的所有代理,请按照以下步骤操作:
  1. 将目录更改为下载目录。

  2. 运行随附的 python 脚本,如下所示:

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

    如果您遵循了“必备条件”部分提供的示例,Agent Bundle Files Location 即为 bundles/6.2.0

  3. 检查生成的状态报告 agent-bundle-upgrade-summary.txt

批量更新示例

此示例从 vRealize Operations Manager vApp 运行升级。本文随附了所需文件。

  1. 在 vRealize Operations vApp 上,运行: $ export PATH=/usr/lib/vmware-vcopssuite/python/bin:$PATH
  2. 运行: $ python --version
    结果将显示 Python 2.7.9。
  3. 获取本文随附的 Python 语言绑定包 (vcops-python.zip)。
  4. 运行: create /tmp/python-stuff
    然后,将 vcops-python.zip 复制到此目录,并在该位置进行解压。
  5. 运行: cd /tmp/python-stuff
  6. 运行: $ python setup.py install
  7. 运行: $ cd /usr/lib/vmware-vcops/user/plugins/inbound/agent_adapter/conf/plugins/agent_plugins
  8. 创建此目录: /usr/lib/vmware-vcops/user/plugins/inbound/agent_adapter/conf/plugins/agent_plugins/bundles/6.2.0
  9. myVMware > Agent Upgrade Bundle 下载 End_Point_Operations_Agent_Upgrade_Bundles.zip
  10. End_Point_Operations_Agent_Upgrade_Bundles.zip (450 MB) 复制到此目录,并在该位置进行解压。
  11. 获取本文随附的 agent-upgrade-bundle.zip (15 KB)。
  12. agent-upgrade-bundle.zip 复制到以下目录:
    /usr/lib/vmware-vcops/user/plugins/inbound/agent_adapter/conf/plugins/agent_plugins
  13. 运行 $ python agent-bundle-upgrade.zip admin VMware1\! your-vrops-name-or-ip --bundles_folder_location=bundles/6.2.0/. --upgrade_all_agents
    注意:必须将密码 VMware1! 拼写为 VMware1\!(包含反斜线,但不包含引号)。

故障排除

使用以下信息解决升级问题。
您还可以在以下日志文件中查找数据来帮助进行故障排除:
  • 当前目录中的 agent-bundle-upgrade.log
  • vRealize Operations Manager 收集器计算机上的 aim-agent-bundle-upgrade.log
要查看该文件,请转至管理 > 支持 > 日志,然后选择其他下的日志文件。
  • 代理捆绑包升级状态为 FAILED_TIMEOUT
    a. 确认代理已经启动并正在运行。
    b. 检查代理和 vRealize Operations Manager 节点之间的网络延迟。

  • 代理捆绑包升级状态为 FAILED
    确认代理已经回滚至之前的版本,并继续使用之前的捆绑包。

  • 针对运行升级命令的用户进行身份验证
    如果您的用户名或密码包含任何可能会被 shell 误读的非字母数字字符,请转义该字符。例如,将 u$er 更改为 u\$er

已知问题

有关端点操作管理代理升级的已知问题已经记录在 vRealize Operations Manager 6.2 Release Notes 中。


Additional Information

Upgrading Multiple Endpoint Operation Management Agents Simultaneously from a Script