15.4. 从主机中删除软件包
您可以使用 Satellite Web UI 从主机中删除软件包。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 选择主机。
- 在 Content 选项卡上,点 Packages 选项卡。
- 点您要删除的软件包的垂直 ellipsis。
- 选择 Remove。Satellite Web UI 显示远程执行作业的通知。
按照以下说明,以 JSON 格式创建 API 请求的正文。
API 流程
-
创建
"job_invocation"
对象,并将正文的其余部分放在此对象中。 -
使用字符串类型的
"inputs
字段创建 "inputs" 对象,指定您要删除的软件包。如果您要指定多个软件包,请将它们与空格分开。"
-
创建字符串类型的
"feature"
字段,值为"katello_package_remove
"。 -
为字符串类型创建一个
"search_query"
字段,并输入与您要删除软件包的主机匹配的搜索查询。 可选:如果要以特定用户身份删除软件包,请使用字符串类型的以下字段创建一个
ssh
对象:-
使用 ssh 用户的名称
"effective_user"
-
如果需要此密码,使用 ssh 用户的密码
"effective_user_password"
-
使用 ssh 用户的名称
可选:如果要稍后删除软件包,请创建
"scheduling"
对象。对象可以包含字符串类型之一或两个字段,其 date、time 和 timezone (ISO 8601 格式):-
"start_at"
- 设置删除软件包的时间 -
"start_before"
- 设置删除软件包的最新时间。如果此时无法删除软件包,则这个操作将被取消。
如果省略时间,则默认为 00:00:00。如果省略时区,则默认为 UTC。
-
-
可选:如果要限制并发运行作业的主机数量,请使用整数类型的
"concurrency_level"
字段创建"concurrency_control"
对象。将主机数量分配为字段值。 -
可选:如果要稍后删除软件包,并且您希望在运行作业时评估主机搜索查询,请创建一个字符串类型的
"targeting_type"
字段,并带有"dynamic_query"
值。如果您希望因为主机状态改变,搜索查询在运行作业时有所不同,这非常有用。如果省略此字段,则默认为"static_query
"。 将带有创建的正文的
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_remove", "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" } }