15.3. 升级主机上的软件包


您可以在 Satellite Web UI 中批量升级主机上的软件包。

流程

  1. 在 Satellite Web UI 中,进入到 Hosts > All Hosts
  2. 单击要修改的主机的名称。
  3. Content 选项卡,然后点 Packages 选项卡。
  4. Status 列表中选择 Upgradable
  5. 从可升级到 适用的列中选择 升级版本。
  6. 选择您要升级的软件包。
  7. 单击 Upgrade。完成远程执行作业后,您会收到 REX 作业通知。

按照以下说明,以 JSON 格式创建 API 请求的正文。

API 流程

  1. 创建 "job_invocation" 对象,并将其余正文放在此对象内。
  2. 使用字符串类型的 "package" 字段创建 "inputs" 对象,指定您要更新的软件包。如果您要指定多个软件包,请使用空格分开它们。
  3. 为字符串类型创建一个 "feature" 字段,其值为 "katello_package_update "。
  4. 为字符串类型创建一个 "search_query" 字段,并输入与要更新软件包的主机匹配的搜索查询。
  5. 可选: 如果要以特定用户身份更新软件包,请使用字符串类型的以下字段创建一个 ssh 对象:

    • 使用 ssh 用户名称的 "effective_user"
    • 如果需要此密码,使用 ssh 用户的密码 "effective_user_password"
  6. 可选: 如果要稍后更新软件包,请创建 "scheduling" 对象。该对象可以包含 ISO 8601 格式的字符串类型中的一个或两个字段,包括日期、时间和时区:

    • "start_at"- 设置更新软件包的时间
    • "start_before" - 设置更新软件包的最新时间。如果此时无法更新软件包,则会取消这个操作。

    如果省略了时间,则默认为 00:00:00。如果省略了时区,则默认为 UTC。

  7. 可选: 如果要限制同时运行作业的主机数量,请使用整数类型的 "concurrency_level" 字段创建 "concurrency_control" 对象。将主机数量分配为字段值。
  8. 可选: 如果要稍后更新软件包,并且您希望在运行作业时评估主机搜索查询,请使用 "dynamic_query" 值创建字符串类型的 "targeting_type" 字段。如果您预期搜索查询的结果在运行作业时不同,因为主机状态改变,则这非常有用。如果省略此字段,则默认为 "static_query "。
  9. 使用创建的正文发送 POST 请求到 Satellite 服务器的 /api/job_invocations 端点,并使用 python 等工具来查看格式化的响应。

    API 请求示例:

    curl https://satellite.example.com/api/job_invocations \
    -H "content-type: application/json" \
    -X POST \
    -d @Path_To_My_API_Request_Body \
    -u My_Username:My_Password | python3 -m json.tool

验证

  • 在 Satellite Web UI 中,进入到 Monitor > Jobs 并查看调度或完成远程执行作业的报告,以更新所选主机上的软件包。

API 请求正文示例

{
  "job_invocation" : {
    "concurrency_control" : {
      "concurrency_level" : 100
    },
    "feature" : "katello_package_update",
    "inputs" : {
      "package" : "nano vim"
    },
    "scheduling" : {
      "start_at" : "2023-09-21T19:00:00+00:00",
      "start_before" : "2023-09-23T00:00:00+00:00"
    },
    "search_query" : "*",
    "ssh" : {
      "effective_user" : "My_Username",
      "effective_user_password" : "My_Password"
    },
    "targeting_type" : "dynamic_query"
  }
}

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.