16.3. ホスト上のパッケージのアップグレード
Satellite Web UI では、ホスト上のパッケージを一括でアップグレードできます。
手順
- Satellite Web UI で、Hosts > All Hosts に移動します。
- 変更するホストの名前をクリックします。
- Content タブをクリックし、Packages タブをクリックします。
- Status 一覧から Upgradable を選択します。
- 該当する場合は、Upgradable to 列のドロップダウンメニューからアップグレードバージョンを選択します。
- アップグレードするパッケージを選択します。
- Upgrade をクリックします。リモート実行ジョブが完了すると、REX ジョブ通知が表示されます。
以下の手順に従って、JSON 形式で API リクエストボディーを作成します。
API の手順
-
"job_invocation"
オブジェクトを作成し、ボディーの残りの部分をこのオブジェクト内に配置します。 -
更新するパッケージを指定する文字列型の
"package"
フィールドを持つ"inputs"
オブジェクトを作成します。複数のパッケージを指定する場合は、空白で区切ります。 -
値
"katello_package_update"
を持つ文字列型の"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_update", "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" } }