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

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

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

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

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

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

ベータ版と一般提供版の compute instances ops-agents policies コマンド グループで作成されたエージェント ポリシーは、次の点で異なります。

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

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

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

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

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

ベータ版と一般提供版の compute instances ops-agents policies コマンド グループは構造的にも異なります。

  • 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
    
  • 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 エージェントでベータ版と一般提供版の両方のエージェント ポリシーを使用できます。

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

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

同じ VM にベータ版と一般提供版のエージェント ポリシーを適用できますが、Ops エージェントをインストールするベータ版のポリシーと、Ops エージェントをアンインストールする一般提供版のポリシーなど、目的が競合しないようにする必要があります。

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

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

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

  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.49.0 の場合、次のような agent-policy YAML を使用できます。

      agentsRule:
        packageState: installed
        version: 2.49.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):
ubuntu-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 エージェントを管理する方法については、以下をご覧ください。