はじめに
GCEのOSバージョンの一覧を取得するためにGCPにVM Managerを設定する。
GCPコンソールからも設定できるが、IaC(Infrastructure as Code)したいのでTerraformでの手順をまとめる。
Terraformを実行するサービスアカウントにroles/iam.serviceAccountUserを追加
gcloud projects add-iam-policy-binding <PROJECT_ID> --member serviceAccount:<SERVICE_ACCOUNT>@<PROJECT_ID>.iam.gserviceaccount.com --role roles/iam.serviceAccountUser
OS Config API, Container Analysis APIの有効化
terraform
# OS Config API
resource "google_project_service" "osconfig" {
project = var.project
service = "osconfig.googleapis.com"
}
# Container Analysis API
resource "google_project_service" "containeranalysis" {
project = var.project
service = "containeranalysis.googleapis.com"
}
メタデータにenable-osconfig, enable-guest-attributesをTRUEに設定
terraform
resource "google_compute_project_metadata" "default" {
metadata = {
enable-osconfig = "TRUE"
enable-guest-attributes = "TRUE"
}
}
インスタンスにログインしてOS Configエージェントがインストールされているか確認
sudo systemctl status google-osconfig-agent
ローカルPCからOS情報を取得できることを確認
gcloud compute instances os-inventory describe <VM_NAME>