Ops エージェントのエージェント ポリシーの概要

エージェント ポリシーを使用すると、ユーザーが指定した基準を満たす Compute Engine VM のフリート全体で Ops エージェントの自動インストールとメンテナンスを行えます。Google Cloud プロジェクトのポリシーを作成し、その Google Cloud プロジェクトに関連付けられた既存の VM と新しい VM を管理できます。これにより、これらの VM 上の Ops エージェントのインストールとアンインストールを適切に行うことができます。

Ops エージェントのエージェント ポリシー

Ops エージェントのエージェント ポリシーのサポートは、一般提供とベータ版の 2 つのリリースレベルで利用できます。どちらのタイプのポリシーも、VM Manager によって提供される OS Config 機能に依存していますが、実装は異なります。可能であれば、一般提供ポリシーを使用することをおすすめします。ほとんどの場合、ベータ版のポリシーを一般提供版のポリシーに変換できます。

このセクションでは、ベータ版と一般提供版のエージェント ポリシーの違いについて説明します。エージェント ポリシーの作成と管理については、以下をご覧ください。

ベータ版と一般提供版のエージェント ポリシーの違い

ベータ版と一般提供版のエージェント ポリシーは、次の点で異なります。

  • 作成メカニズム

  • 以前の Monitoring エージェントと Logging エージェントのサポート

    • ベータ版のエージェント ポリシーでは、以前の Monitoring エージェントと Logging エージェント、および Ops エージェントを管理できます。
    • 一般提供版のエージェント ポリシーは Ops エージェントのみを管理します。
  • エージェント バージョンの自動アップグレード

    • ベータ版のエージェント ポリシーでは、エージェントをアップグレードすることで、エージェントを最新バージョンに保つことができます。
    • 一般提供版のエージェント ポリシーは自動アップグレードをサポートしていません。別の方法については、ベータ版エージェントのアップグレード ポリシーを置き換えるをご覧ください。
  • 名前付き Compute Engine インスタンスへのポリシーの適用

  • Google Cloud プロジェクト内のエージェント ポリシーの適用範囲(グローバルまたはゾーン)

    • ベータ版のエージェント ポリシーは、Google Cloud プロジェクト内のポリシー条件によって選択されたすべてのインスタンスにグローバルに適用されます。
    • 一般提供版のエージェント ポリシーは、ポリシーで指定されたゾーン内のポリシー条件で選択されたすべてのインスタンスに適用されます。たとえば、us-central1-a ゾーンで作成されたポリシーは、他のゾーンの VM には影響しません。

ベータ版と一般提供版のポリシーは構造的にも異なります。

  • gcloud beta compute instances ops-agents policies を使用して作成されたポリシーは、個々のオプションをコマンドに渡すことでエージェント ポリシーを記述します。次に例を示します。

    gcloud beta compute instances ops-agents policies create ops-agents-test-policy \
      --agent-rules="type=logging,enable-autoupgrade=false;type=metrics,enable-autoupgrade=false" \
      --description="A test policy." \
      --os-types=short-name=centos,version=7 \
      --instances=zones/us-central1-a/instances/test-instance \
      --project PROJECT_ID
    

    Terraform の agent-policy モジュールには、同じ機能が用意されています。

  • gcloud compute instances ops-agents policies を使用して作成されたポリシーは、YAML 構成ファイルとゾーンを使用してエージェント ポリシーを記述します。次に例を示します。

    gcloud compute instances ops-agents policies create test-policy \
      --zone us-central1-a \
      --file test-policy.yaml \
      --project PROJECT_ID
    

    ops-agent-policy Terraform モジュールには同じ機能があります。

ベータ版と一般提供版の両方のポリシーの使用

ポリシーの違いを把握していれば、Ops エージェントでベータ版と一般提供版の両方のエージェント ポリシーを使用できます。

ベータ版と一般提供のエージェント ポリシーの動作の最大の違いは、一般提供のポリシーはゾーン単位であるのに対し、ベータ版のエージェント ポリシーはプロジェクト内でグローバルである点です。つまり、一般提供のエージェント ポリシーは、ポリシーが作成されたゾーンの VM のみを選択しますが、ベータ版のポリシーは Google Cloud プロジェクト内のすべての VM を選択できます。

ベータ版のポリシーで 1 つの VM セットを選択し、一般提供版のポリシーで別の VM セットを選択した場合、ポリシーの競合は発生しません。

ベータ版と一般提供版のエージェント ポリシーを同じ VM に適用できますが、ポリシーに相反する目的がないことを確認する必要があります(例: Ops エージェントをインストールするベータ版ポリシーとOps エージェントをアンインストールする一般提供版ポリシー)。

ベータ版のポリシーを一般提供版のポリシーに変換する

ポリシータイプの違いで回避できない問題がない限り、Ops エージェントのベータ版のエージェント ポリシーを一般提供版のエージェント ポリシーに変換できます。以前の Monitoring エージェントまたは Logging エージェントのベータ版のエージェント ポリシーを一般提供版のエージェント ポリシーに変換することはできません。

Google Cloud SDK を使用してベータ版のエージェント ポリシーを一般提供ポリシーに変換するには、次の操作を行います。

  1. 次のコマンドを実行して、プロジェクト内のすべてのベータ版のエージェント ポリシーのリストを生成します。

    gcloud beta compute instances ops-agents policies list --project PROJECT_ID
    
  2. 一般提供版のポリシーに変換するベータ版のエージェント ポリシーを特定します。

  3. 変換するベータ版のポリシーごとに、次の操作を行います。

    1. ベータ版と一般提供版のポリシーの違いを考慮して、ベータ版のポリシーにできるだけ近い YAML 構成ファイルを作成します。YAML 構成ファイルの形式については、エージェント ポリシーを記述するをご覧ください。

    2. ポリシーが必要な各ゾーンに一般提供版のエージェント ポリシーを作成します。一般提供版のエージェント ポリシーの作成については、エージェント ポリシーを作成するをご覧ください。

    3. 次のコマンドを実行して、ベータ版のエージェント ポリシーを削除します。

      gcloud beta compute instances ops-agents policies delete POLICY_ID --project PROJECT_ID
      

Ops エージェントに、既存のベータ版のエージェント ポリシーとまったく同じ一般提供版のエージェント ポリシーを作成できない場合があります。ただし、ベータ版のエージェント ポリシーの自動アップグレード オプションを除き、同等の動作を実現できます。

以降のセクションでは、次のケースの処理方法について説明します。

ベータ版の名前付きインスタンス ポリシーを一般提供版ポリシーに変換する

名前付きの VM インスタンス セットに適用されるベータ版のエージェント ポリシーを変換するには、次の操作を行います。

  1. 選択する VM セット内のインスタンスにラベルを適用します。既存の VM にラベルを適用するには、次の例のように gcloud compute instances add-labels コマンドを使用します。

    gcloud compute instances add-labels INSTANCE_NAME --labels=KEY=VALUE
    
  2. 構成で instanceFilter 構造を使用して、新しいラベルを持つ VM を選択する一般提供版のエージェント ポリシーを記述します。次の例では、前の手順で適用したラベルと一致するポリシーを含む config.yaml というファイルを作成します。

    cat > config.yaml << EOF
    agentsRule:
      packageState: installed
      version: 2.47.0
    instanceFilter:
      inclusionLabels:
      - labels:
        KEY: VALUE
    EOF
    

    一般提供版のエージェント ポリシーの記述方法については、エージェント ポリシーの構成ファイルをご覧ください。

  3. 新しいラベルの VM がある各ゾーンに一般提供版のエージェント ポリシーを作成します。

    gcloud compute instances ops-agents policies create POLICY_ID \
      --zone ZONE \
      --file config.yaml
      --project PROJECT_ID
    

    一般提供版のエージェント ポリシーの作成方法については、エージェント ポリシーを作成するをご覧ください。

ベータ版のエージェント アップグレード ポリシーを置き換える

エージェントをアップグレードするベータの版エージェント ポリシーを置き換えるには、次の方法があります。

  • Ops エージェントを常に最新の状態にするには、OS Patch を使用して、エージェントを最新バージョンに保つ OS Patch ジョブを作成して実行します。
  • 1 回限りのアップグレードを実行する手順は次のとおりです。

    1. Ops エージェントの最新バージョンは、Ops エージェントの GitHub のリリースノートで確認できます。
    2. 最新バージョンのエージェントをインストールするように、エージェント ポリシーを作成または変更します。たとえば、最新バージョンが 2.51.0 の場合、次のような agent-policy YAML を使用できます。

      agentsRule:
        packageState: installed
        version: 2.51.0
      instanceFilter:
      [...]
      
    3. 各ゾーンの VM にポリシーを適用します。

サポートされているオペレーティング システム

エージェント ポリシーは、次の表に示すオペレーティング システムを実行している Compute Engine VM インスタンスに適用できます。

オペレーティング システム Ops エージェント
(一般提供とベータ版の ポリシー)
Logging エージェント
(ベータ版 ポリシーのみ)
Monitoring エージェント
(ベータ版 ポリシーのみ)
CentOS 8
Rocky Linux 8
RHEL 6
RHEL 7:
rhel-7, rhel-7-6-sap-ha, rhel-7-7-sap-ha, rhel-7-9-sap-ha
RHEL 8:
rhel-8, rhel-8-4-sap-ha, rhel-8-6-sap-ha, rhel-8-8-sap-ha
Debian 9(Stretch)
Debian 11(Bullseye)
Debian 11(Bullseye)ベースの Deep Learning VM Image
Ubuntu LTS 18.04 (Bionic Beaver):
ubuntu-1804-lts, ubuntu-minimal-1804-lts
Ubuntu LTS 20.04 (Focal Fossa):
ubuntu-2004-lts, ubuntu-minimal-2004-lts
Ubuntu LTS 22.04 (Jammy Jellyfish):
buntu-2204-lts, ubuntu-minimal-2204-lts
SLES 12:
sles-12、sles-12-sp5-sap
SLES 15:
sles-15, sles-15-sp2-sap, sles-15-sp3-sap, sles-15-sp4-sap, sles-15-sp5-sap, sles-15-sp6-sap
OpenSUSE Leap 15:
opensuse-leap (opensuse-leap-15-3-*,
opensuse-leap-15-4-*)
Windows Server:
2016、2019、2022、Core 2016、Core 2019、Core 2022
  ベータ版エージェント ポリシーでは、エージェント列は gcloud beta compute instances ops-agents policies create 呼び出しで指定されるエージェント タイプにマッピングされます。
  • Ops エージェントはエージェント タイプ ops-agent にマッピングされます。
  • Logging エージェントは、エージェント タイプ logging にマッピングされます。
  • Monitoring エージェントは、エージェント タイプ metrics にマッピングされます。
 Monitoring エージェントは、rhel-7-9-sap-harhel-8-2-sap-ha、または rhel-8-4-sap-ha ではサポートされていません。

次のステップ

エージェント ポリシーを使用して Ops エージェントを管理する方法については、以下をご覧ください。