15.3. 升级主机上的软件包


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

流程

  1. 在 Satellite Web UI 中,进入到 Hosts > All Hosts
  2. 选择主机。
  3. Content 选项卡上,点 Packages 选项卡。
  4. Status 列表中选择 Upgradable
  5. Upgradable to 列中,选择要升级到的软件包版本。
  6. 选择您要升级的软件包。
  7. 单击 Upgrade。Satellite Web UI 显示远程执行作业的通知。

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

API 流程

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

    • 使用 ssh 用户的名称 "effective_user"
    • 如果需要此密码,使用 ssh 用户的密码 "effective_user_password"
  6. 可选:如果要稍后更新软件包,请创建 "scheduling" 对象。对象可以包含字符串类型之一或两个字段,其 date、time 和 timezone (ISO 8601 格式):

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

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

  7. 可选:如果要限制并发运行作业的主机数量,请使用整数类型的 "concurrency_level" 字段创建 "concurrency_control" 对象。将主机数量分配为字段值。
  8. 可选:如果要稍后更新软件包,并且您希望在运行作业时评估主机搜索查询,请创建一个字符串类型的 "targeting_type" 字段,并带有 "dynamic_query" 值。如果您希望因为主机状态改变,搜索查询在运行作业时有所不同,这非常有用。如果省略此字段,则默认为 "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.