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