第 6 章 API cheat sheet


您可以查看如何使用 Red Hat Satellite API 执行各种任务的示例。您可以通过 HTTPS 在端口 443 上使用 API。

例如,在 Ruby 中,您可以指定 Satellite 服务器 URL,如下所示:

url = 'https://satellite.example.com/api/v2/'
katello_url = 'https://satellite.example.com/katello/api/v2/'

您可以使用这些值来完全自动化脚本,无需验证要使用的端口。

以下示例使用 curl 发送 API 请求。如需更多信息,请参阅 第 5.1 节 “在 curl 中调用 API”

6.1. 使用主机

列出主机

本例返回 Satellite 主机列表。

请求示例:

$ curl --request GET --user My_User_Name:My_Password \
https://satellite.example.com/api/v2/hosts | python3 -m json.tool

响应示例:

{
      ...
       "total" => 2,
    "subtotal" => 2,
        "page" => 1,
    "per_page" => 1000,
      "search" => nil,
        "sort" => {
           "by" => nil,
        "order" => nil
    },
     "results" => [
      ...
}

为主机请求信息

此请求返回主机 satellite.example.com 的信息。

请求示例:

$  curl --request GET --user My_User_Name:My_Password \
https://satellite.example.com/api/v2/hosts/satellite.example.com \
| python3 -m json.tool

响应示例:

{
    "all_puppetclasses": [],
    "architecture_id": 1,
    "architecture_name": "x86_64",
    "build": false,
    "capabilities": [
        "build"
    ],
    "certname": "satellite.example.com",
    "comment": null,
    "compute_profile_id": null,
    ...
}

列出主机事实

此请求返回主机 satellite.example.com 的所有事实。

请求示例:

$ curl --request GET --user My_User_Name:My_Password \
https://satellite.example.com/api/v2/hosts/satellite.example.com/facts \
| python3 -m json.tool

响应示例:

{
    ...
    "results": {
        "satellite.example.com": {
            "augeasversion": "1.0.0",
            "bios_release_date": "01/01/2007",
            "bios_version": "0.5.1",
            "blockdevice_sr0_size": "1073741312",
            "facterversion": "1.7.6",
            ...
}

搜索具有匹配模式的主机

此查询返回与模式"example"匹配的所有主机。

请求示例:

$ curl --request GET --user My_User_Name:My_Password \
https://satellite.example.com/api/v2/hosts?search=example \
| python3 -m json.tool

响应示例:

{
    ...
    "results": [
        {
            "name": "satellite.example.com",
            ...
        }
    ],
    "search": "example",
    ...
}

搜索环境中的主机

此查询会返回生产环境中的所有主机。

请求示例:

$ curl --request GET --user My_User_Name:My_Password \
https://satellite.example.com/api/v2/hosts?search=environment=production \
| python3 -m json.tool

响应示例:

{
    ...
    "results": [
        {
            "environment_name": "production",
            "name": "satellite.example.com",
            ...
        }
    ],
    "search": "environment=production",
    ...
}

使用特定事实值搜索主机

此查询返回具有模型名称 RHV Hypervisor 的所有主机。

请求示例:

$ curl --request GET --user My_User_Name:My_Password \
https://satellite.example.com/api/v2/hosts?search=model=\"RHV+Hypervisor\" \
| python3 -m json.tool

响应示例:

{
    ...
    "results": [
        {
            "model_id": 1,
            "model_name": "RHV Hypervisor",
            "name": "satellite.example.com",
            ...
        }
    ],
    "search": "model=\"RHV Hypervisor\"",
    ...
}

删除主机

此请求删除名为 host1.example.com 的主机。

请求示例:

$ curl --request DELETE --user My_User_Name:My_Password \
https://satellite.example.com/api/v2/hosts/host1.example.com \
| python3 -m json.tool

下载全主机引导磁盘镜像

此请求通过其 ID 下载主机的完整引导磁盘镜像。

请求示例:

$ curl --request GET --user My_User_Name:My_Password \
https://satellite.example.com/api/bootdisk/hosts/host_ID?full=true \
--output image.iso
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.