第6章 API チートシート
Red Hat Satellite API を使用してさまざまなタスクを実行する方法については、次の例を参照してください。ポート 443 の HTTPS 経由で Satellite Server 上の API を使用できます。
たとえば、Ruby では、Satellite Server の URL を次のように指定できます。
url = 'https://satellite.example.com/api/v2/' katello_url = 'https://satellite.example.com/katello/api/v2/'
これらの値を使用してスクリプトを完全に自動化し、使用するポートを検証する必要性をなくします。
次の例では、API リクエストの送信に curl
を使用します。詳細は、「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",
...
}
環境でのホストの検索
以下のクエリーは、production
環境内の全ホストを返します。
要求例:
$ 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