第15章 パッケージの管理
Satellite を使用して、ホストでパッケージをインストール、アップグレード、および削除できます。
15.1. ホストへのパッケージのインストール
この手順を使用して、Satellite Web UI を使用してパッケージを確認し、ホストにインストールします。インストール可能なパッケージのリストは、ホストに割り当てられたコンテンツビューおよびライフサイクル環境によって異なります。
手順
- Satellite Web UI で、Hosts > All Hosts に移動し、パッケージをインストールするホストを選択します。
- Content タブで、 Packages タブを選択します。
- アップグレードボタンの横にある縦の省略記号アイコンで、Install Packages をクリックします。
- Install packages ウィンドウで、ホストにインストールするパッケージを選択します。
- Install をクリックします。
デフォルトでは、パッケージはリモート実行を使用してインストールされます。リモート実行ジョブの詳細は、ホストの管理 の リモートジョブの設定とセットアップ を参照してください。
以下の手順に従って、API リクエストの本文を JSON 形式で作成します。
API の手順
-
"job_invocation"
オブジェクトを作成し、本文の残りの部分をこのオブジェクト内に配置します。 -
インストールするパッケージを指定する文字列型の
"package"
フィールドを持つ"inputs"
オブジェクトを作成します。複数のパッケージを指定する場合は、空白で区切ります。 -
値
"katello_package_install"
を持つ文字列型の"feature"
フィールドを作成します。 -
文字列型の
"search_query"
フィールドを作成し、パッケージをインストールするホストに一致する検索クエリーを入力します。 オプション: 特定のユーザーとしてパッケージをインストールする場合は、次の文字列型のフィールドを持つ
ssh
オブジェクトを作成します。-
ssh ユーザーの名前を含む
"effective_user"
フィールド -
ssh ユーザーのパスワードを含む
"effective_user_password"
フィールド (このパスワードが必要な場合)
-
ssh ユーザーの名前を含む
オプション: 後でパッケージをインストールする場合は、
"scheduling"
オブジェクトを作成します。このオブジェクトには、ISO 8601 形式の日付、時刻、タイムゾーンを含む、次の文字列型フィールドの 1 つまたは両方を含めることができます。-
"start_at"
- パッケージをインストールする時刻を設定します。 -
"start_before"
- パッケージをインストールする最も遅い時刻を設定します。この時刻までにパッケージをインストールできない場合、このアクションはキャンセルされます。
時刻を省略すると、デフォルトの 00:00:00 になります。タイムゾーンを省略した場合は、デフォルトで UTC が使用されます。
-
-
オプション: ジョブを同時に実行するホストの数を制限する場合は、整数型の
"concurrency_level"
フィールドを持つ"concurrency_control"
オブジェクトを作成します。ホストの数をフィールドの値として割り当てます。 -
オプション: 後でパッケージをインストールし、ジョブの実行時にホスト検索クエリーを評価する場合は、
"dynamic_query"
値を持つ文字列型の"targeting_type"
フィールドを作成します。これは、ホストのステータスの変更により、ジョブの実行時に検索クエリーの結果が異なることが予想される場合に便利です。このフィールドを省略すると、デフォルトの"static_query"
が使用されます。 作成した本文を含む
POST
リクエストを Satellite Server の/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_install", "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" } }