第15章 パッケージの管理

Satellite を使用して、ホストでパッケージをインストール、アップグレード、および削除できます。

15.1. ホストへのパッケージのインストール

この手順を使用して、Satellite Web UI を使用してパッケージを確認し、ホストにインストールします。インストール可能なパッケージのリストは、ホストに割り当てられたコンテンツビューおよびライフサイクル環境によって異なります。

手順

  1. Satellite Web UI で、Hosts > All Hosts に移動し、パッケージをインストールするホストを選択します。
  2. Content タブで、 Packages タブを選択します。
  3. アップグレードボタンの横にある縦の省略記号アイコンで、Install Packages をクリックします。
  4. Install packages ウィンドウで、ホストにインストールするパッケージを選択します。
  5. Install をクリックします。

デフォルトでは、パッケージはリモート実行を使用してインストールされます。リモート実行ジョブの詳細は、ホストの管理リモートジョブの設定とセットアップ を参照してください。

以下の手順に従って、API リクエストの本文を JSON 形式で作成します。

API の手順

  1. "job_invocation" オブジェクトを作成し、本文の残りの部分をこのオブジェクト内に配置します。
  2. インストールするパッケージを指定する文字列型の "package" フィールドを持つ "inputs" オブジェクトを作成します。複数のパッケージを指定する場合は、空白で区切ります。
  3. "katello_package_install" を持つ文字列型の "feature" フィールドを作成します。
  4. 文字列型の "search_query" フィールドを作成し、パッケージをインストールするホストに一致する検索クエリーを入力します。
  5. オプション: 特定のユーザーとしてパッケージをインストールする場合は、次の文字列型のフィールドを持つ ssh オブジェクトを作成します。

    • ssh ユーザーの名前を含む "effective_user" フィールド
    • ssh ユーザーのパスワードを含む "effective_user_password" フィールド (このパスワードが必要な場合)
  6. オプション: 後でパッケージをインストールする場合は、"scheduling" オブジェクトを作成します。このオブジェクトには、ISO 8601 形式の日付、時刻、タイムゾーンを含む、次の文字列型フィールドの 1 つまたは両方を含めることができます。

    • "start_at" - パッケージをインストールする時刻を設定します。
    • "start_before" - パッケージをインストールする最も遅い時刻を設定します。この時刻までにパッケージをインストールできない場合、このアクションはキャンセルされます。

    時刻を省略すると、デフォルトの 00:00:00 になります。タイムゾーンを省略した場合は、デフォルトで UTC が使用されます。

  7. オプション: ジョブを同時に実行するホストの数を制限する場合は、整数型の "concurrency_level" フィールドを持つ "concurrency_control" オブジェクトを作成します。ホストの数をフィールドの値として割り当てます。
  8. オプション: 後でパッケージをインストールし、ジョブの実行時にホスト検索クエリーを評価する場合は、"dynamic_query" 値を持つ文字列型の "targeting_type" フィールドを作成します。これは、ホストのステータスの変更により、ジョブの実行時に検索クエリーの結果が異なることが予想される場合に便利です。このフィールドを省略すると、デフォルトの "static_query" が使用されます。
  9. 作成した本文を含む 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"
  }
}