ゲストポリシー(レガシー)の管理


ゲストポリシーを作成したら、次の手順でポリシーを確認、管理できます。

OS Config エージェントは 10~15 分ごとに動作するため、ポリシーの更新や削除を設定すると、実施されるまで約 10~15 分かかります。

ゲストポリシーは、Google Cloud CLI または OS Config API を使用して管理できます。

Google Cloud CLI と OS Config API では、ゲストポリシーの名前は POLICY_ID として示されます。

始める前に

ゲストポリシーを更新する

ゲストポリシーの更新は、次の手順で行います。

  1. YAML または JSON ファイルを更新します。
  2. 更新コマンドまたはパッチコマンドを実行します。更新プロセスは作成プロセスと似ていますが、同時実行と整合性の制御が可能な ETag のサポートが追加されています。

gcloud

os-config guest-policies update コマンドを使用してゲストポリシーを更新します。

gcloud beta compute os-config guest-policies update POLICY_ID \
     --file=FILE

以下を置き換えます。

  • POLICY_ID: 更新するゲストポリシーの名前。
  • FILE: 更新されたゲストポリシー仕様を含む JSON または YAML ファイル。

API

API で、projects.guestPolicies.patch メソッドに対する PATCH リクエストを作成します。

PATCH https://osconfig.googleapis.com/v1beta/projects/PROJECT_ID/guestPolicies/POLICY_ID

{
  For more information, see Guest policy JSON
}

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • POLICY_ID: ゲストポリシーの名前。

ゲストポリシーについて記述する

gcloud

ゲストポリシーについての詳細を表示するには、os-config guest-policies describe コマンドを使用します。POLICY_ID は、記述するゲストポリシーの名前に置き換えます。

gcloud beta compute os-config guest-policies describe POLICY_ID

API

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

GET https://osconfig.googleapis.com/v1beta/projects/PROJECT_ID/guestPolicies/POLICY_ID

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • POLICY_ID: ゲストポリシーの名前。

ゲストポリシーを一覧表示する

gcloud

プロジェクト内のゲストポリシーの一覧を表示するには、os-config guest-policies list コマンドを使用します。

gcloud beta compute os-config guest-policies list

API

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

GET https://osconfig.googleapis.com/v1beta/projects/PROJECT_ID/guestPolicies

ゲストポリシーを削除する

ゲストポリシーの削除がトリガーされたことを OS Config エージェントが検出すると、システムの現在の状態は維持されますが、構成にはメンテナンスが行われなくなります。たとえば、ゾーン us-west2-b のすべての VM でパッケージ my-package をインストールし、パッケージ UPDATED を保持するゲストポリシー package-update-zone2b が設定されているとします。

package-update-zone2b ポリシーを削除すると、次の変更が行われます。

  • my-package がインストールされている us-west2-b のすべての VM で、my-package がインストールされたままになります。現在のシステム状態は元に戻りません。
  • ポリシーを削除した後は、OS Config エージェントを実行すると、必ず次のようになります。

    • 新しい VM が us-west2-b に追加された場合、my-package がこの新しい VM にインストールされません。
    • my-package がインストールされているインスタンスでは、パッケージは更新されません。

gcloud

ゲストポリシーを削除するには、os-config guest-policies delete コマンドを使用します。POLICY_ID は、削除するゲストポリシーの名前に置き換えます。

gcloud beta compute os-config guest-policies delete POLICY_ID

API

API で、projects.guestPolicies.delete メソッドに対する DELETE リクエストを作成します。

DELETE https://osconfig.googleapis.com/v1beta/projects/PROJECT_ID/guestPolicies/POLICY_ID

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • POLICY_ID: ゲストポリシーの名前。

VM インスタンスの構成を表示する

gcloud

ひとつの VM インスタンスだけに適用されているポリシーを表示するには、os-config guest-policies lookup コマンドを使用します。

gcloud beta compute os-config guest-policies lookup VM_NAME \
    --zone=ZONE

以下を置き換えます。

  • VM_NAME: VM インスタンスの名前
  • ZONE: VM インスタンスのゾーン

API

ひとつの VM インスタンスだけに適用されているポリシーを表示するには、次の POST リクエストを使用します。

POST https://osconfig.googleapis.com/v1beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:lookupEffectiveGuestPolicy

以下を置き換えます。

  • PROJECT_ID: プロジェクト ID。
  • ZONE: VM インスタンスのゾーン
  • VM_NAME: VM インスタンスの名前。

トラブルシューティング

ゲストポリシーを調べる

Google Cloud コンソールまたは Google Cloud CLI を使用して、プロジェクトに関連付けられているゲストポリシーを調べることができます。

コンソール

  1. Google Cloud Console で、[OS ゲストポリシー] ページに移動します。

    [OS ゲストポリシー] ページに移動する

  2. 検査するゲストポリシーを選択して、[詳細を表示] をクリックします。

gcloud

  1. os-config guest-policies list コマンドを使用して、すべてのゲストポリシーを一覧表示します。

    gcloud beta compute os-config guest-policies list
    
  2. ゲストポリシーのリストから、検査するゲストポリシーの ID をコピーしてから、コマンドを実行してそれぞれのゲストポリシーを検査します。POLICY_ID を、調べるポリシー ID に置き換えます。

    gcloud beta compute os-config guest-policies describe POLICY_ID
    

特定の VM に対するゲストポリシーを調べる

lookup コマンドを特定の VM に実行して、その VM に適用される構成を調べることができます。

ある VM インスタンスが予想されるゲストポリシーの要件を満たしていない可能性がある場合は、その VM インスタンスに割り当てられているゲストポリシーのリストを調べると役立ちます。これにより、ゲストポリシーの Assignment フィールドがこの特定 VM と一致するかどうかがわかります。

os-config guest-policies lookup コマンドを使用して、特定の VM をターゲットにしている可能性があるゲストポリシーを一覧表示します。VM_NAME は、検査する VM の名前に置き換えます。

gcloud beta compute os-config guest-policies lookup VM_NAME

詳しくは、VM インスタンスの構成を表示するをご覧ください。

コマンドの出力結果から、ゲストポリシーの VM 割り当てプロパティで VM は実際にターゲットになっていないことがわかるでしょう。たとえば、Labels のリストや VM 名接頭辞のリストに表示されていません。

障害から復旧する

ソフトウェア レシピのインストールは失敗しても、再試行されません。これは、ソフトウェア レシピが失敗したときの状態がシステムで認識されないためです。

失敗したソフトウェア レシピをデバッグする場合は、次の手順を行うことをおすすめします。

  1. ソフトウェア レシピの名前を変更する。
  2. 名前を変更したソフトウェア レシピを使用してゲストポリシーを削除して再作成する。

その他のトラブルシューティングの手順については、VM Manager のトラブルシューティングをご覧ください。

次のステップ