VM Manager の設定確認


このドキュメントを使用して、VM Manager が正しく設定されていることを確認します。VM Manager の設定については、VM Manager の設定をご覧ください。

設定を確認するには、トラブルシューティング コマンドを使用するか、仮想マシン(VM)インスタンスで手動チェックを実施します。

始める前に

  • Windows VM の場合は、PowerShell 3.0 以降を使用します。
  • まだ設定していない場合は、認証を設定します。認証とは、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. デフォルトのリージョンとゾーンを設定します

トラブルシューティング コマンドを使用する

os-config troubleshoot コマンドを使用して設定を確認します。いずれかのチェックが失敗した場合は、問題の解決方法についてフィードバックが提供されます。

gcloud compute os-config troubleshoot VM_NAME \
   --zone=ZONE

次のように置き換えます。

  • VM_NAME: トラブルシューティングする VM インスタンスの名前
  • ZONE: インスタンスが配置されているゾーン

  • 例 1: VM インスタンスに設定の問題がある場合の os-config troubleshoot コマンドの出力を示す
  • 例 2: VM インスタンスが適切に設定されている場合の os-config troubleshoot コマンドの出力を示す

例 1

ゾーン asia-east2-b 内の my-instance-1 という VM インスタンスのトラブルシューティングを行うには、次のコマンドを実行します。

gcloud compute os-config troubleshoot my-instance-1 \
    --zone=asia-east2-b

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

OS Config troubleshooter tool is checking if there are issues with the
VM Manager setup for this VM instance.

> Is the OS Config API enabled? Yes
> Is the OS Config agent enabled? Yes
> Is the OS Config agent up to date? No

The version of OS Config agent running on this VM instance is not the
latest version.
See https://cloud.google.com/compute/docs/manage-os/upgrade-vm-manager#update-agent
on how to update the agent.

例 2

ゾーン us-west1-b 内の my-instance-2 という VM インスタンスのトラブルシューティングを行うには、次のコマンドを実行します。

gcloud compute os-config troubleshoot my-instance-2 \
    --zone=us-west1-b

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

OS Config troubleshooter tool is checking if there are issues with the
VM Manager setup for this VM instance.

> Is the OS Config API enabled? Yes
> Is the OS Config agent enabled? Yes
> Is the OS Config agent up to date? Yes
> Is a service account present on the instance? Yes
> Is the OS Config Service account present for this instance? Yes
> Does this instance have a public IP or Private Google Access? Yes
This instance has a public IP.

手動での確認

VM Manager が正しく設定されていることを手動で確認するには、次のチェックを実施します。

VM Manager が正しく設定されていても問題が解決しない場合は、VM Manager のトラブルシューティングをご覧ください。

OS Config API が有効か確認する

Google Cloud プロジェクトで、API が有効になっているかどうかを確認します。

コンソール

Google Cloud コンソールで OS Config API ページに移動します。

OS Config API に移動

gcloud

gcloud services list --enabled

API が有効な場合、出力は次のようになります。

osconfig.googleapis.com              OS Config API

API が有効でない場合は、OS Config API を有効にします。

メタデータが有効か確認する

Linux

プロジェクト メタデータの場合、VM で次の手順を行います。

  1. プロジェクト属性エンドポイントに対してクエリを実行します。

    curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/" \
    -H "Metadata-Flavor: Google"
    

    エージェントのメタデータ値が設定されている場合、出力は次のようになります。

    enable-osconfig
    
  2. enable-osconfig 値が表示されたら、エンドポイントに対してクエリを実行します。

    curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/enable-osconfig" \
    -H "Metadata-Flavor: Google"

    有効な場合、エンドポイントは TRUE を返します。

メタデータが有効になっていない場合は、OS Config メタデータを有効にします。

Windows

プロジェクト メタデータの場合、VM で管理者として PowerShell ターミナルを開き、次のコマンドを実行します。

  1. プロジェクト属性エンドポイントに対してクエリを実行します。

    $value = (Invoke-RestMethod `
             -Headers @{'Metadata-Flavor' = 'Google'} `
             -Uri "http://metadata.google.internal/computeMetadata/v1/project/attributes/")
    $value
    

    エージェントのメタデータ値が設定されている場合、出力は次のようになります。

    enable-osconfig
    
  2. enable-osconfig 値が表示されたら、エンドポイントに対してクエリを実行します。

    $value = (Invoke-RestMethod `
             -Headers @{'Metadata-Flavor' = 'Google'} `
             -Uri "http://metadata.google.internal/computeMetadata/v1/project/attributes/enable-osconfig")
    $value
    

    有効な場合、エンドポイントは TRUE を返します。

メタデータが有効になっていない場合は、OS Config メタデータを有効にします。

OS Config エージェントがインストールされ、実行されているか確認する

Linux

Linux VM にエージェントがインストールされているかどうかを確認するには、次のコマンドを実行します。

sudo systemctl status google-osconfig-agent

エージェントがインストールされ、実行されている場合、出力は次のようになります。

google-osconfig-agent.service - Google OSConfig Agent
Loaded: loaded (/lib/systemd/system/google-osconfig-agent.service; enabled; vendor preset:
Active: active (running) since Wed 2020-01-15 00:14:22 UTC; 6min ago
Main PID: 369 (google_osconfig)
 Tasks: 8 (limit: 4374)
Memory: 102.7M
CGroup: /system.slice/google-osconfig-agent.service
        └─369 /usr/bin/google_osconfig_agent

エージェントがインストールされていない場合は、OS Config エージェントをインストールします。

Windows

Windows VM にエージェントがインストールされているかどうかを確認するには、次のコマンドを実行します。

PowerShell Get-Service google_osconfig_agent

エージェントがインストールされ、実行されている場合、出力は次のようになります。

Status   Name               DisplayName
------   ----               -----------
Running  google_osconfig... Google OSConfig Agent

エージェントがインストールされていない場合は、OS Config エージェントをインストールします。

サービス アカウントが有効か確認する

サービス アカウントの要件については、設定の概要をご覧ください。

Linux

VM で次のコマンドを実行します。

curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/" \
-H "Metadata-Flavor: Google"

出力には少なくともデフォルトのサービス アカウントが含まれている必要があります。

default/

Windows

VM で、管理者として PowerShell ターミナルを開き、次のコマンドを実行します。

$value = (Invoke-RestMethod `
         -Headers @{'Metadata-Flavor' = 'Google'} `
         -Uri "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/")
$value

出力には少なくともデフォルトのサービス アカウントが含まれている必要があります。

default/

VM が OS Config API と通信できるか確認する

VM が OS Config API と通信できるかどうかを確認するには、Linux または Windows VM で次のコマンドを実行します。

ping osconfig.googleapis.com

OS Config API への ping を停止するには、Ctrl+C キーを押します。

プライベート VPC ネットワーク内で VM が実行されており、公共のインターネット アクセスがない場合は、限定公開の Google アクセスが有効になっていることを確認します。

限定公開の Google アクセスを有効にした後に、VM が OS Config API と通信できることを確認します。

Linux

VM で次のコマンドを実行します。

 curl --ssl 'https://osconfig.googleapis.com/$discovery/rest' | head

VM が OS Config API と通信できる場合、コマンド出力は次のようになります。

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed
0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0{
"discoveryVersion": "v1",
"baseUrl": "https://osconfig.googleapis.com/",
"ownerName": "Google",
"version": "v1beta",
"schemas": {
  "GooSettings": {
    "description": "Googet patching is performed by running `googet update`.",
    "properties": {},
    "id": "GooSettings",
100  9569    0  9569    0     0   198k      0 --:--:-- --:--:-- --:--:--  198k

Windows

VM で、管理者として PowerShell ターミナルを開き、次のコマンドを実行します。

 Invoke-RestMethod  -Headers @{'Metadata-Flavor' = 'Google'}
 -Uri 'https://osconfig.googleapis.com/$discovery/rest'

次のステップ