第4章 Red Hat Satellite API の使用開始
url = 'https://satellite6.example.com/api/v2/' capsule_url = 'https://capsule.example.com:8443/api/v2/' katello_url = 'https://satellite6.example.com/katello/api/v2/'
url = 'https://satellite6.example.com/api/v2/'
capsule_url = 'https://capsule.example.com:8443/api/v2/'
katello_url = 'https://satellite6.example.com/katello/api/v2/'
/etc/rhsm/rhsm.conf
ファイルにある [server] セクションの port
エントリーをもとに、API にアクセスする際に必要な、正しいポートを判断することができます。これらの値を使用して、スクリプトを完全に自動化して、使用するポートを検証する必要性をなくすことができます。
4.1. curl を使用した API の例 リンクのコピーリンクがクリップボードにコピーされました!
curl
を使用して Satellite API でさまざまなタスクを実行する方法について説明します。
4.1.1. シンプルなクエリーの実行 リンクのコピーリンクがクリップボードにコピーされました!
curl
を使用して Satellite デプロイメントの情報を検索する方法を説明します。以下の例には、実際のコマンドと、サンプルの出力、ユーザー名やパスワードの値の例などが含まれます。デプロイメントごとに結果は異なります。また、以下の例では python -m json.tool
コマンドを使用して出力をフォーマットしています。
注記
-k
(セキュアではありません) オプションを使用して証明書チェックを省略することができます。
-u username:password
の形式を使用するか、パスワードを追加していない場合にはコマンドでパスワードの入力が求められます。コマンドの一部としてパスワードを追加すると shell の履歴に残り、セキュリティーリスクとなる可能性があるため、Red Hat ではこれは推奨していません。以下の例では、単純化の目的としてのみ、パスワードをコマンドに含めています。
curl
で -s
(サイレント) オプションを使用する場合は、進捗バーやエラーメッセージが表示されないので注意してください。
以下は、リソースの一覧を返す基本的なクエリーです。このような要求は、メタデータでラップされたデータ一覧を返しますが、他の要求タイプでは実際のオブジェクトのみを返します。
例4.1 ユーザーの一覧表示
以下のクエリーは、ホスト satellite6.example.com
の情報を返します。
以下のクエリーは、ホスト satellite6.example.com
の全ファクトを返します。
以下のクエリーは、「example」というパターンと一致するホストをすべて返します。
以下のクエリーは、「production」環境内の全ホストを返します。
以下のクエリーでは、「RHEV Hypervisor」というモデル名を持つホストがすべて返されます。
以下のクエリーでは、host1.example.com という名前のホストが削除されます。
curl -k -u sat_username:sat_password -X DELETE https://satellite6.example.com/api/v2/hosts/host1.example.com
curl -k -u sat_username:sat_password -X DELETE https://satellite6.example.com/api/v2/hosts/host1.example.com
4.1.2. リソースの作成および変更 リンクのコピーリンクがクリップボードにコピーされました!
Accept:version=2
を使用するのと同じです。URL の指定が優先されます。
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X POST \ -u username:password -k \ -d json-formatted-data https://satellite6.example.com
$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" -X POST \
-u username:password -k \
-d json-formatted-data https://satellite6.example.com
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X POST -u sat_username:sat_password \ -k -d "{\"architecture\":{\"name\":\"i686\"}}" \ https://satellite6.example.com/api/architectures
$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" -X POST -u sat_username:sat_password \
-k -d "{\"architecture\":{\"name\":\"i686\"}}" \
https://satellite6.example.com/api/architectures
{"name":"i686","id":3,"created_at":"2015-10-29T13:21:09Z","updated_at":"2015-10-29T13:21:09Z","operatingsystems":[],"images":[]}
{"name":"i686","id":3,"created_at":"2015-10-29T13:21:09Z","updated_at":"2015-10-29T13:21:09Z","operatingsystems":[],"images":[]}
hammer
を使用して結果を検証することも可能です。
例4.2 新しいユーザーの作成
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X POST \ -u sat_username:sat_password -k \ -d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \ https://satellite6.example.com/api/users
$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" -X POST \
-u sat_username:sat_password -k \-u sat_username:sat_password -k \-u sat_username:sat_password -k \-u sat_username:sat_password -k \-u sat_username:sat_password -k \
-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \-d "{\"firstname\":\"Test\",\"lastname\":\"API-User\",\"mail\":\"test@example.com\",\"login\":\"test_api\",\"password\":\"123456\",\"auth_source_id\":1}" \
https://satellite6.example.com/api/usershttps://satellite6.example.com/api/usershttps://satellite6.example.com/api/users
4.1.2.1. Satellite サーバーへのコンテンツのアップロード リンクのコピーリンクがクリップボードにコピーされました!
curl
を使用して、Satellite サーバーに大容量ファイルをアップロードしてインポートする方法を説明します。このプロセスには 4 つの手順が含まれます。
- アップロード要求を作成します。
- コンテンツをアップロードします。
- コンテンツをインポートします。
- アップロード要求を削除します。
手順4.1 Satellite サーバーへのコンテンツのアップロード
- アップロード要求を作成します。デプロイメントに適したサンプルパラメーターを変更するようにしてください。
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ -X POST \ -u sat_username:sat_password -k -d "{}" \ https://satellite6.example.com/katello/api/repositories/3/content_uploads
$ curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ -X POST \ -u sat_username:sat_password -k -d "{}" \ https://satellite6.example.com/katello/api/repositories/3/content_uploads
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、以下のようなupload_id
を返します。{"upload_id":"0be156b1-f373-4cad-89d0-924f8f4491d2","_href":"/pulp/api/v2/content/uploads/0be156b1-f373-4cad-89d0-924f8f4491d2/"}
{"upload_id":"0be156b1-f373-4cad-89d0-924f8f4491d2","_href":"/pulp/api/v2/content/uploads/0be156b1-f373-4cad-89d0-924f8f4491d2/"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - コンテンツをアップロードします。データのアップロード時には、正しい MIME タイプを使用していることを確認します。Satellite 6 に対する要求にはほぼ、「application/json」の MIME タイプが使用されます。
upload_id
と MIME タイプ、他のパラメーターを組み合わせてコンテンツをアップロードします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Satellite サーバーにコンテンツをアップロードした後に、適切なリポジトリーにそのコンテンツをインポートする必要があります。この手順を完了するまで、Satellite サーバーではこの新しいコンテンツは認識されません。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - コンテンツのアップロードおよびインポートが正常に完了したら、アップロード要求を削除することができます。削除することで、アップロード中に使用した一時的なディスク領域を解放することができます。
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ -X DELETE -d "{}" \ -u sat_username:sat_password \ -k https://satellite6.example.com/katello/api/repositories/3/content_uploads/0be156b1-f373-4cad-89d0-924f8f4491d2
$ curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ -X DELETE -d "{}" \ -u sat_username:sat_password \ -k https://satellite6.example.com/katello/api/repositories/3/content_uploads/0be156b1-f373-4cad-89d0-924f8f4491d2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
例4.3 30 MB よりも大きいコンテンツのアップロード
- サンプルモジュールをダウンロードします。
wget https://forgeapi.puppetlabs.com/v3/files/theforeman-foreman-5.0.1.tar.gz?_ga=1.267255502.1792403825.1430297670 -O theforeman-foreman-5.0.1.tar.gz
$ wget https://forgeapi.puppetlabs.com/v3/files/theforeman-foreman-5.0.1.tar.gz?_ga=1.267255502.1792403825.1430297670 -O theforeman-foreman-5.0.1.tar.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 50,000 バイトのチャンクにモジュールを分割します。split --bytes 50000 --numeric-suffixes --suffix-length=1 theforeman-foreman-5.0.1.tar.gz foreman_module.
$ split --bytes 50000 --numeric-suffixes --suffix-length=1 theforeman-foreman-5.0.1.tar.gz foreman_module.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 結果ファイルを表示します。ls -la theforeman-foreman-5.0.1.tar.gz foreman_module.*
$ ls -la theforeman-foreman-5.0.1.tar.gz foreman_module.* -rw-r--r--. 1 root root 50000 Nov 4 04:42 foreman_module.0 -rw-r--r--. 1 root root 32928 Nov 4 04:42 foreman_module.1 -rw-r--r--. 1 root root 82928 Nov 4 04:41 theforeman-foreman-5.0.1.tar.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 新規アップロード要求を作成します (これは Satellite サーバーでの
cat
と同じです)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドはアップロード ID を返します。{"upload_id":"9585528f-07ad-4bb1-9c80-ccece249b2b7","_href":"/pulp/api/v2/content/uploads/9585528f-07ad-4bb1-9c80-ccece249b2b7/"}
{"upload_id":"9585528f-07ad-4bb1-9c80-ccece249b2b7","_href":"/pulp/api/v2/content/uploads/9585528f-07ad-4bb1-9c80-ccece249b2b7/"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 手順 1 で作成したファイルのチャンクをアップロードします。以下の例で
offset
パラメーターを使用して、ファイルサイズと関連付けている点に注意してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 完全なアップロードをリポジトリーにインポートします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - アップロード要求を削除します。
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ -X DELETE -d "{}" \ -u sat_username:sat_password \ -k https://ibm-vm01.example.com/katello/api/repositories/2/content_uploads/9585528f-07ad-4bb1-9c80-ccece249b2b7
$ curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ -X DELETE -d "{}" \ -u sat_username:sat_password \ -k https://ibm-vm01.example.com/katello/api/repositories/2/content_uploads/9585528f-07ad-4bb1-9c80-ccece249b2b7
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Satellite サーバーにログインして、ファイルが正しく転送されたかどうかを確認します。
ls -la /var/lib/pulp/content/puppet_module/theforeman-foreman-5.0.1.tar.gz
$ ls -la /var/lib/pulp/content/puppet_module/theforeman-foreman-5.0.1.tar.gz -rw-r--r--. 1 apache apache 82928 Nov 4 04:55 /var/lib/pulp/content/puppet_module/theforeman-foreman-5.0.1.tar.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを比較します。cmp /var/lib/pulp/content/puppet_module/theforeman-foreman-5.0.1.tar.gz theforeman-foreman-5.0.1.tar.gz
$ cmp /var/lib/pulp/content/puppet_module/theforeman-foreman-5.0.1.tar.gz theforeman-foreman-5.0.1.tar.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo $?
$ echo $? 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.3. スマートクラスのオーバーライド リンクのコピーリンクがクリップボードにコピーされました!
https://satellite6.example.com/apidoc/v2/smart_class_parameters/update.html
にある同梱の API リファレンスで確認できます。
GET /api/smart_class_parameters
のようになります。curl
を使用する場合のコマンドは以下のようになります。
curl -X GET -s -k -u sat_username:sat_password \ https://satellite6.example.com/api/smart_class_parameters
$ curl -X GET -s -k -u sat_username:sat_password \curl -X GET -s -k -u sat_username:sat_password \curl -X GET -s -k -u sat_username:sat_password \curl -X GET -s -k -u sat_username:sat_password \curl -X GET -s -k -u sat_username:sat_password \
https://satellite6.example.com/api/smart_class_parametershttps://satellite6.example.com/api/smart_class_parametershttps://satellite6.example.com/api/smart_class_parameters
curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/puppetclasses/5/smart_class_parameters
$ curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/puppetclasses/5/smart_class_parameterscurl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/puppetclasses/5/smart_class_parameterscurl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/puppetclasses/5/smart_class_parameterscurl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/puppetclasses/5/smart_class_parameterscurl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/puppetclasses/5/smart_class_parameterscurl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/puppetclasses/5/smart_class_parameterscurl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/puppetclasses/5/smart_class_parameters
puppetclass_name
と key
の 2 つで、特定のパラメーターの検索が可能になります。たとえば、-d
オプションと --data
オプションを使用して URL のエンコードデータを渡すことができます。
curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/smart_class_parameters -d 'search=puppetclass_name = access_insights_client and key = authmethod'
$ curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/smart_class_parameters -d 'search=puppetclass_name = access_insights_client and key = authmethod'curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/smart_class_parameters -d 'search=puppetclass_name = access_insights_client and key = authmethod'curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/smart_class_parameters -d 'search=puppetclass_name = access_insights_client and key = authmethod'curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/smart_class_parameters -d 'search=puppetclass_name = access_insights_client and key = authmethod'curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/smart_class_parameters -d 'search=puppetclass_name = access_insights_client and key = authmethod'curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/smart_class_parameters -d 'search=puppetclass_name = access_insights_client and key = authmethod'curl -X GET -s -k -u sat_username:sat_password https://satellite6.example.com/api/smart_class_parameters -d 'search=puppetclass_name = access_insights_client and key = authmethod'
GET /api/smart_class_parameters/63
です。curl
を使用する場合のコマンドは以下のようになります。
curl -X GET -s -k -u sat_username:sat_password \ https://satellite6.example.com/api/smart_class_parameters/63
$ curl -X GET -s -k -u sat_username:sat_password \curl -X GET -s -k -u sat_username:sat_password \curl -X GET -s -k -u sat_username:sat_password \curl -X GET -s -k -u sat_username:sat_password \curl -X GET -s -k -u sat_username:sat_password \
https://satellite6.example.com/api/smart_class_parameters/63https://satellite6.example.com/api/smart_class_parameters/63https://satellite6.example.com/api/smart_class_parameters/63
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X PUT \ -s -k -u sat_username:sat_password \ -d '{"smart_class_parameter":{"override":true}}' \ https://satellite6.example.com/api/smart_class_parameters/63
$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" -X PUT \
-s -k -u sat_username:sat_password \-s -k -u sat_username:sat_password \-s -k -u sat_username:sat_password \-s -k -u sat_username:sat_password \-s -k -u sat_username:sat_password \
-d '{"smart_class_parameter":{"override":true}}' \
https://satellite6.example.com/api/smart_class_parameters/63https://satellite6.example.com/api/smart_class_parameters/63https://satellite6.example.com/api/smart_class_parameters/63
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X PUT \ -s -k -u sat_username:sat_password \ -d '{"smart_class_parameter":{"override_value":{"match":"hostgroup=Test","value":"2.4.6"}}}' \ https://satellite6.example.com/api/smart_class_parameters/63
$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" -X PUT \
-s -k -u sat_username:sat_password \-s -k -u sat_username:sat_password \-s -k -u sat_username:sat_password \-s -k -u sat_username:sat_password \-s -k -u sat_username:sat_password \
-d '{"smart_class_parameter":{"override_value":{"match":"hostgroup=Test","value":"2.4.6"}}}' \
https://satellite6.example.com/api/smart_class_parameters/63https://satellite6.example.com/api/smart_class_parameters/63https://satellite6.example.com/api/smart_class_parameters/63
https://satellite6.example.com/apidoc/v2/override_values.html
で参照してください。
curl -X DELETE -s -u sat_username:sat_password \ https://satellite6.example.com/api/smart_class_parameters/63/override_values/3
$ curl -X DELETE -s -u sat_username:sat_password \curl -X DELETE -s -u sat_username:sat_password \curl -X DELETE -s -u sat_username:sat_password \curl -X DELETE -s -u sat_username:sat_password \curl -X DELETE -s -u sat_username:sat_password \
https://satellite6.example.com/api/smart_class_parameters/63/override_values/3https://satellite6.example.com/api/smart_class_parameters/63/override_values/3https://satellite6.example.com/api/smart_class_parameters/63/override_values/3
4.1.3.1. 外部ファイルを使用したスマートクラスパラメーターの変更 リンクのコピーリンクがクリップボードにコピーされました!
手順4.2 外部ファイルを使用したスマートクラスパラメーターの変更
- 今回は
motd
という名前で Puppet クラスを検索します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 各スマートクラスパラメーターは、同じ Satellite インスタンスにおいてグローバルな ID となっています。motd
クラスのcontent
パラメーターは、この Satellite サーバーではid=3
です。この ID は、Puppet クラス名の前に表示される Puppet クラス ID と間違わないようにしてください。 - パラメーター ID
3
を使用して、motd
パラメーター固有の情報を取得して、出力をoutput_file.json
などのファイルにリダイレクトします。curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X GET \ -u sat_user:sat_passwd -k \ "https://satellite6.example.com/api/smart_class_parameters/3 \ | python -m json.tool > output_file.json
$ curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X GET \ -u sat_user:sat_passwd -k \ "https://satellite6.example.com/api/smart_class_parameters/3 \"https://satellite6.example.com/api/smart_class_parameters/3 \"https://satellite6.example.com/api/smart_class_parameters/3 \ | python -m json.tool > output_file.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 以前の手順で作成したファイルを
changed_file.json
という新しいファイルにコピーして編集します。エディターでファイルを開き、任意の値に変更します。以下の例では、motd
モジュールのコンテンツパラメーターを変更します。この際、override
オプションをfalse
からtrue
に変更する必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ファイルの編集後に、以下のようになっていることを確認して、変更を保存します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 以下のように PUT コマンドを使用して、Satellite サーバーに変更を適用します。
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ -X PUT -u $user:$passwd \ -d @changed_file.json \ -k "https://satellite6.example.com/api/smart_class_parameters/3
$ curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ -X PUT -u $user:$passwd \ -d @changed_file.json \ -k "https://satellite6.example.com/api/smart_class_parameters/3-k "https://satellite6.example.com/api/smart_class_parameters/3-k "https://satellite6.example.com/api/smart_class_parameters/3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.4. エラータのホストまたはホストコレクションへの適用 リンクのコピーリンクがクリップボードにコピーされました!
curl
を使用して、エラータをホスト、ホストグループ、またはホストコレクションに適用することができます。以下は、PUT 要求の基本的な構文です。
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X PUT \ -u sat_username:sat_password -k \ -d json-formatted-data https://satellite6.example.com
$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" -X PUT \
-u sat_username:sat_password -k \
-d json-formatted-data https://satellite6.example.com
https://satellite6.example.com/apidoc/v2.html
) を参照してエラータの適用に使用する URL を検索します。Satellite Web UI を使用すると、検索クエリー形式の検索に役立ちます。 host_collection="my-collection"
が含まれます。以下のホストコレクションの例では、これを使用します。
例4.4 ホストへのエラータの適用
/katello/api/hosts/bulk/install_content
を使用して単純な検索に必要な形式を表示します。
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X PUT \ -u sat_username:sat_password -k \ -d "{\"organization_id\":1,\"included\":{\"search\":\"my-host\"},\"content_type\":\"errata\",\"content\":[\"RHBA-2016:1981\"]}" https://satellite6.example.com/api/v2/hosts/bulk/install_content
$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" -X PUT \
-u sat_username:sat_password -k \
-d "{\"organization_id\":1,\"included\":{\"search\":\"my-host\"},\"content_type\":\"errata\",\"content\":[\"RHBA-2016:1981\"]}" https://satellite6.example.com/api/v2/hosts/bulk/install_content
例4.5 ホストコレクションへのエラータの適用
host_collection="my-collection"
を渡すのに必要なエスケープレベルに注目してください。
curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" -X PUT \ -u sat_username:sat_password -k \ -d "{\"organization_id\":1,\"included\":{\"search\":\"host_collection=\\\"my-collection\\\"\"},\"content_type\":\"errata\",\"content\":[\"RHBA-2016:1981\"]}" https://satellite6.example.com/api/v2/hosts/bulk/install_content
$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" -X PUT \
-u sat_username:sat_password -k \
-d "{\"organization_id\":1,\"included\":{\"search\":\"host_collection=\\\"my-collection\\\"\"},\"content_type\":\"errata\",\"content\":[\"RHBA-2016:1981\"]}" https://satellite6.example.com/api/v2/hosts/bulk/install_content