パッチジョブを管理する


パッチジョブの作成後、次の手順を使用してパッチの確認と管理を行うことができます。

パッチジョブは、Google Cloud コンソールGoogle Cloud CLI、または REST を使用して管理できます。

始める前に

  • OS Config の割り当てを確認します。
  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    コンソール

    Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

権限

プロジェクトのオーナーは、パッチジョブの実行と管理を行うための完全アクセス権を持っています。それ以外のすべてのユーザーにはアクセス権限を付与する必要があります。次のいずれかの詳細な役割を付与できます。

  • roles/osconfig.patchJobExecutor: パッチジョブを実行、キャンセル、取得、一覧表示する権限が含まれています。また、パッチジョブのインスタンスの詳細を表示する権限も含まれています。
  • roles/osconfig.patchJobViewer: パッチジョブを取得して一覧表示するための読み取り専用アクセス権限が含まれています。また、パッチジョブのインスタンスの詳細を表示する権限も含まれています。

パッチジョブを一覧表示する

すべてのアクティブなジョブと完了したジョブのリストを表示します。

コンソール

  1. Google Cloud コンソールで、[Compute Engine] > [VM Manager] > [パッチ] ページに移動します。

    [パッチ] ページに移動

  2. [パッチジョブ] タブを選択します。

gcloud

os-config patch-jobs list コマンドを使用して、パッチジョブを一覧表示します。

gcloud compute os-config patch-jobs list

Google Cloud CLI の場合、デフォルトの出力では、完了済みまたはアクティブなパッチジョブの最新の 10 個が返されます。この設定は、--limit フラグを使用してオーバーライドできます。

出力は次のようになります。

ID                                          NAME    DESCRIPTION               CREATE_TIME               UPDATE_TIME               STATE                  TARGETED_INSTANCES
23b0815e-1c94-4dc6-91b1-30a6da395cb9                                          2019-11-05T20:22:54.150Z  2019-11-06T19:40:08.641Z  COMPLETED_WITH_ERRORS  4
4116ad72-bd57-4e48-94dc-7a577dc707b6                                          2019-08-23T20:36:03.068Z  2019-08-23T20:36:15.984Z  CANCELED               2
06856cbe-9a7b-498e-9105-9ae4eb566511                                          2019-08-12T20:27:38.410Z  2019-08-12T20:28:37.583Z  SUCCEEDED              1
04a15964-9eaa-4282-96f5-9cd535352cf6                                          2019-08-12T17:48:22.938Z  2019-08-12T17:48:42.274Z  SUCCEEDED              0
21dc1e06-deee-4e3a-821e-8082a32abde5                testing patch job reboot  2019-07-24T22:45:07.451Z  2019-07-25T00:44:44.459Z  TIMED_OUT              1

複数のフラグを使用して検索のフィルタ、並べ替え、フォーマットが可能です。たとえば、次のコマンドを実行すると、上記の出力をフィルタしてステータスが SUCCEEDED のパッチジョブの URI のみを作成時刻の昇順で一覧表示できます。

gcloud compute os-config patch-jobs list \
   --filter="state=SUCCEEDED" \
   --sort-by="create_time" --uri

出力は次のようになります。

https://osconfig.googleapis.com/v1/projects/1234567/patchJobs/04a15964-9eaa-4282-96f5-9cd535352cf6
https://osconfig.googleapis.com/v1/projects/1234567/patchJobs/06856cbe-9a7b-498e-9105-9ae4eb566511

フラグの全リストについては、os-config patch-jobs list コマンドをご覧ください。

REST

API で、patchJobs.list メソッドに対する GET リクエストを作成します。project-id は実際のプロジェクト ID に置き換えます。

GET https://osconfig.googleapis.com/v1/projects/project-id/patchJobs

特定のパッチジョブのすべての VM インスタンスの詳細を一覧表示する

OS Patch Management を使用する VM インスタンスの完全なリストについては、パッチジョブのステータスを確認してください。

コンソール

  1. Google Cloud コンソールで、[Compute Engine] > [VM Manager] > [パッチ] ページに移動します。

    [パッチ] ページに移動

  2. [パッチジョブ] タブを選択します。
  3. 確認するパッチジョブの名前をクリックします。
  4. [更新された VM インスタンス] までスクロールします。

gcloud

特定のパッチジョブのすべての VM の詳細を一覧表示するには、os-config patch-jobs list-instance-details コマンドを使用します。patch-job-id は、パッチジョブの ID に置き換えます。

gcloud compute os-config patch-jobs list-instance-details patch-job-id

たとえば、次のコマンドを実行すると、パッチジョブ 23b0815e-1c94-4dc6-91b1-30a6da395cb9 の一部であるすべてのインスタンスの詳細を表示できます。

gcloud compute os-config patch-jobs list-instance-details 23b0815e-1c94-4dc6-91b1-30a6da395cb9

出力は次のようになります。

NAME                        ZONE           STATE      FAILURE_REASON
instance-1                  us-central1-a  SUCCEEDED
guest-policy-test-instance  us-east1-c     TIMED_OUT  Instance timed out while in state: APPLYING_PATCHES after PT1H2.225S
my-centos                   us-west1-b     SUCCEEDED
my-windows                  us-west1-b     FAILED     Error running pre-patch step: fork/exec /tmp/pre_patch_script.sh: no such file ..."

複数のフラグを使用して検索のフィルタ、並べ替え、フォーマットが可能です。たとえば、次のコマンドを実行すると、すべての非アクティブな VM の詳細をインスタンス名で降順に並べて一覧表示できます。patch-job-id は、パッチジョブの ID に置き換えます。

gcloud compute os-config patch-jobs list-instance-details patch-job-id \
   --filter="state=INACTIVE" \
   --sort-by="~name"

フラグの全リストについては、os-config patch-jobs list-instance-details コマンドをご覧ください。

REST

API で、patchJobs.instanceDetails メソッドに対する GET リクエストを作成します。

GET https://osconfig.googleapis.com/v1/projects/project-id/patchJobs/patch-job-id/instanceDetails

以下を置き換えます。

  • project-id: 実際のプロジェクト ID。
  • patch-job-id: 実際のパッチジョブ ID。

パッチジョブについて説明する

パッチジョブの詳細情報を確認します。

コンソール

  1. Google Cloud コンソールで、[Compute Engine] > [VM Manager] > [パッチ] ページに移動します。

    [パッチ] ページに移動

  2. [パッチジョブ] タブを選択します。
  3. 確認するパッチジョブの名前をクリックします。
  4. [情報の更新] セクションを確認します。

gcloud

os-config patch-jobs describe コマンドを使用して、パッチジョブを記述します。patch-job-id は、パッチジョブの ID に置き換えます。

gcloud compute os-config patch-jobs describe patch-job-id

たとえば、次のコマンドを実行すると、パッチジョブ 23b0815e-1c94-4dc6-91b1-30a6da395cb9 に関する情報を表示できます。

gcloud compute os-config patch-jobs describe 23b0815e-1c94-4dc6-91b1-30a6da395cb9

出力は次のようになります。

createTime: '2019-11-05T20:22:54.150Z'
errorMessage: Completed with 2 instance failure(s).
filter: id=*
instanceDetailsSummary:
  instancesFailed: '1'
  instancesSucceeded: '2'
  instancesTimedOut: '1'
instanceFilter: {}
name: projects/1234567/patchJobs/23b0815e-1c94-4dc6-91b1-30a6da395cb9
patchConfig: {}
percentComplete: 100.0
state: COMPLETED_WITH_ERRORS
updateTime: '2019-11-06T19:40:08.641Z'

REST

API で、patchJobs.get メソッドに対する GET リクエストを作成します。

GET https://osconfig.googleapis.com/v1/projects/project-id/patchJobs/patch-job-id

以下を置き換えます。

  • project-id: 実際のプロジェクト ID。
  • patch-job-id: 実際のパッチジョブ ID。

パッチジョブのキャンセル

パッチジョブをキャンセルすると、OS Config エージェントは実行中のサブタスクを終了しますが、その後は続行しません。サブタスクとは、簡単に停止できないエージェントによって実行されるタスクを指します。

たとえば、VM インスタンスの再起動中にパッチジョブがキャンセルされた場合、再起動(もしあれば再起動後の自動パッチも)は実行されて完了しますが、エージェントはそのパッチジョブの追加タスクを開始しません。

コンソール

  1. Google Cloud コンソールで、[Compute Engine] > [VM Manager] > [パッチ] ページに移動します。

    [パッチ] ページに移動

    1. [パッチジョブ] タブを選択します。
    2. キャンセルするパッチジョブの [アクション] メニューを開きます。
    3. [キャンセル] を選択します。

gcloud

パッチジョブをキャンセルするには、os-config patch-jobs cancel コマンドを使用します。patch-job-id は、パッチジョブの ID に置き換えます。

gcloud compute os-config patch-jobs cancel patch-job-id

REST

API で、patchJobs.cancel メソッドに対する POST リクエストを作成します。

POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs/patch-job-id:cancel

以下を置き換えます。

  • project-id: 実際のプロジェクト ID。
  • patch-job-id: 実際のパッチジョブ ID。

次のステップ