设置 VM 管理器

在 Compute Engine 上,您可以使用 VM 管理器来管理虚拟机 (VM) 上运行的操作系统。

如需查看设置虚拟机以使用 VM 管理器所需的步骤,请参阅设置概览

设置 VM 管理器后,您可以查看通过 OS Config API 执行的 API 操作的审核日志,请参阅查看 VM 管理器审核日志

准备工作

设置概览

您可以通过以下两种方式启用虚拟机管理器:

  • 自动启用:应用于整个 Google Cloud 项目。您可以通过 Cloud Console 完成自动启用。您可能还需要手动执行某些步骤。
  • 手动启用:可以按虚拟机启用,也可以为整个 Google Cloud 项目启用。

手动

如需手动设置虚拟机管理器,请完成以下步骤:

  1. 在您的 Google Cloud 项目中,启用 OS Config API
  2. 在您的 Google Cloud 项目中,启用 Container Analysis API
  3. 在每个虚拟机上,检查是否安装了 OS Config 代理。 如果尚未安装 OS Config 代理,请安装该代理。
  4. 针对您的项目或每个虚拟机,设置 OS Config 代理的实例元数据。 如需在虚拟机或项目中激活 OS Config 代理,必须执行此步骤。
  5. 验证所有虚拟机是否都具有附加的服务帐号。您无需向此服务帐号授予任何 IAM 角色。 虚拟机管理器使用此服务帐号签署对 API 服务的请求。
  6. 如果您的虚拟机在专用 VPC 网络中运行,并且无法访问公共互联网,请启用专用 Google 访问通道
  7. 可选。针对您的项目或每个虚拟机,停用不需要的功能

自动

首次在 Cloud Console 中导航到任何虚拟机管理器页面时,您可以选择自动启用虚拟机管理器。

如果您按照引导步骤操作,则可以使用自动启用功能完成以下任务:

  • 在 Google Cloud 项目上启用 OS Config Service API
  • 在 Google Cloud 项目上启用 Container Analysis API
  • 在 Google Cloud 项目中安装了该代理的所有虚拟机上激活该代理

自动启用。

支持的操作系统

如需查看支持虚拟机管理器的操作系统和版本的完整列表,请参阅操作系统详细信息

启用 OS Config Service API

在您的 Cloud 项目中,启用 OS Config API。

控制台

在 Google Cloud Console 中,启用 OS Config API。

启用 OS Config API

gcloud

如需启用 API,请运行以下命令:

gcloud services enable osconfig.googleapis.com

检查 OS Config 代理是否已安装

Red Hat Enterprise Linux (RHEL)、Debian、CentOS 和版本日期为 v20200114 或之后的 Windows 映像上默认安装了 OS Config 代理。 在您启用代理元数据启用服务 API 之前,这些代理会以空闲方式运行。

Linux

如需检查您的 Linux 虚拟机是否安装了该代理,请运行以下命令:

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 虚拟机是否安装了代理,请运行以下命令:

PowerShell Get-Service google_osconfig_agent

如果代理已安装且正在运行,则会输出如下内容:

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

如果尚未安装 OS Config 代理,请安装该代理。

安装 OS Config 代理

在按照下列步骤安装代理之前,请先检查您的虚拟机上是否已运行代理

在每个虚拟机上,安装 OS Config 代理。您可以使用下列其中一种方法安装 OS Config 代理:

手动安装代理

可使用这种方法在现有虚拟机上安装 OS Config 代理。

如需安装代理,请完成以下步骤:

  1. 连接到要在其上安装 OS Config 代理的虚拟机

  2. 安装 OS Config 代理。

    Windows Server

    如需在 Windows Server 上安装 OS Config 代理,请运行以下命令:

    googet -noconfirm install google-osconfig-agent
    

    Ubuntu

    如需在 Ubuntu 虚拟机上安装 OS Config 代理,请运行以下命令:

    1. 设置 Ubuntu 代码库。

      • 对于 Ubuntu 20.04 及更高版本,请运行以下命令:

        1. 添加 Ubuntu 代码库。

          sudo su -c "echo 'deb http://packages.cloud.google.com/apt google-compute-engine-focal-stable main' > \
          /etc/apt/sources.list.d/google-compute-engine.list"
          
        2. 导入 Google Cloud 公钥。

          curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | \
          sudo apt-key add -
          
      • 对于 Ubuntu 18.04 及更高版本,请运行以下命令:

        1. 添加 Ubuntu 代码库。

          sudo su -c "echo 'deb http://packages.cloud.google.com/apt google-compute-engine-bionic-stable main' > \
          /etc/apt/sources.list.d/google-compute-engine.list"
          
        2. 导入 Google Cloud 公钥。

          curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | \
          sudo apt-key add -
          
      • 对于 Ubuntu 16.04,请运行以下命令:

        1. 添加 Ubuntu 代码库。

          sudo su -c "echo 'deb http://packages.cloud.google.com/apt google-compute-engine-xenial-stable main'> \
          /etc/apt/sources.list.d/google-compute-engine.list"
          
        2. 导入 Google Cloud 公钥。

          curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | \
          sudo apt-key add -
          
    2. 安装 OS Config 代理。

      sudo apt update
      sudo apt -y install google-osconfig-agent
      

    Debian

    如需在 Debian 虚拟机上安装 OS Config 代理,请运行以下命令:

    sudo apt update
    sudo apt -y install google-osconfig-agent
    

    添加 Google Cloud 代码库和公钥

    如果您使用的虚拟机实例并非通过 Google 提供的映像创建,或收到“unable to locate package”的错误消息,请完成下列步骤以添加 Google Cloud 代码库并导入公钥。

    添加代码库并导入密钥之后,您就可以运行相应的命令来安装 OS Config 代理。

    • 对于 Debian 9 (Stretch),请运行以下命令:

      1. 添加 Debian 代码库。

        sudo su -c "echo 'deb http://packages.cloud.google.com/apt \
        google-compute-engine-stretch-stable main'> /etc/apt/sources.list.d/google-compute-engine.list"
        
      2. 导入 Google Cloud 公钥。

        curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | \
        sudo apt-key add -
        
    • 对于 Debian 10 (Buster),请运行以下命令:

      1. 添加 Debian 代码库。

        sudo su -c "echo 'deb http://packages.cloud.google.com/apt \
        google-compute-engine-buster-stable main'> /etc/apt/sources.list.d/google-compute-engine.list"
        
      2. 导入 Google Cloud 公钥。

        curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | \
        sudo apt-key add -
        

    RHEL/CentOS

    如需在 RHEL 7/8 或 CentOS 7/8 虚拟机上安装 OS Config 代理,请运行以下命令:

    sudo yum -y install google-osconfig-agent
    

    SLES/openSUSE

    如需在 SLES 或 OpenSUSE 虚拟机上安装 OS Config 代理,请运行以下命令:

    1. 设置 SLES 代码库。

      • 对于 SLES 12,请运行以下命令:

        sudo su -c "cat > /etc/zypp/repos.d/google-compute-engine.repo <<EOM
        [google-compute-engine]
        name=Google Compute Engine
        baseurl=https://packages.cloud.google.com/yum/repos/google-compute-engine-sles12-stable
        enabled=1
        gpgcheck=1
        repo_gpgcheck=0
        gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
          https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
        EOM"
        
      • 对于 SLES 15 和 OpenSUSE 15,请运行以下命令:

        sudo su -c "cat > /etc/zypp/repos.d/google-compute-engine.repo <<EOM
        [google-compute-engine]
        name=Google Compute Engine
        baseurl=https://packages.cloud.google.com/yum/repos/google-compute-engine-sles15-stable
        enabled=1
        gpgcheck=1
        repo_gpgcheck=0
        gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
          https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
        EOM"
        
        
    2. 导入适用于 Google Cloud 的 GPG 密钥。

      sudo rpm --import https://packages.cloud.google.com/yum/doc/yum-key.gpg \
      --import https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
      
    3. 安装 OS Config 代理。

      sudo zypper -n --gpg-auto-import-keys install --from google-compute-engine google-osconfig-agent
      

使用启动脚本安装代理

您还可以使用手动安装命令创建启动脚本,并在创建虚拟机的过程中安装 OS Config 代理。

  1. 复制适用于您的操作系统的手动命令
  2. 为虚拟机创建方法提供启动脚本

    例如,如果您使用 gcloud compute instances create 命令创建新的 Debian 9 虚拟机,则您的命令类似于以下内容:

    gcloud compute instances create VM_NAME \
       --image-family=debian-9 --image-project=debian-cloud \
       --metadata startup-script='#! /bin/bash
       sudo apt update
       sudo apt -y install google-osconfig-agent'

    VM_NAME 替换为虚拟机名称。

  3. 验证启动脚本是否完成运行。如需验证启动脚本是否完成运行,您可以查看日志或查看串行控制台

设置元数据值

您可以设置每个虚拟机上的实例元数据或适用于项目中所有虚拟机的项目元数据。

在您的 Cloud 项目或虚拟机上,将 enable-osconfig 元数据值设置为 TRUE。将 enable-osconfig 元数据值设置为 TRUE 可启用以下功能:

  • OS Patch Management
  • OS Configuration Management
  • OS Inventory Management

    • 要使 OS Inventory Management(早期版本)正常运行,您还必须将 enable-guest-attributes 元数据值设置为 TRUE
    • 对于 OS Inventory Management(预览版),您无需启用客机特性。

    如需详细了解这两个 OS Inventory Management 版本,请参阅 OS Inventory Management 版本

控制台

您可以使用下列其中一种方法将元数据值应用于您的 Cloud 项目或虚拟机:

  • 方法 1:在项目级元数据中设置 enable-osconfig,以将此项设置应用于项目中的所有虚拟机。

    1. 在 Google Cloud Console 中,转到元数据页面。

      转到元数据

    2. 点击修改

    3. 添加以下元数据条目:

      键:enable-osconfig
      值:TRUE

      要使 OS Inventory Management(早期版本)正常运行,您需要同时设置 enable-osconfigenable-guest-attributes

      • 键:enable-osconfig
        值:TRUE
      • 键:enable-guest-attributes
        值:TRUE
    4. 点击保存以应用更改。

  • 方法 2:创建实例时,在虚拟机元数据中设置 enable-osconfig

    1. 在 Google Cloud Console 中,转到创建实例页面。

      转到“创建实例”

    2. 指定虚拟机详情。

    3. 展开 网络、磁盘、安全、管理、单独租用部分,并执行以下操作:

      1. 展开管理部分。
      2. 元数据部分中,点击添加一项以添加以下元数据条目:

        enable-osconfig
        TRUE

        要使 OS Inventory Management(早期版本)正常运行,您需要同时设置 enable-osconfigenable-guest-attributes

        • enable-osconfig
          TRUE
        • enable-guest-attributes
          TRUE
    4. 如需创建虚拟机,请点击创建

  • 方法 3:在现有虚拟机的元数据中设置 enable-osconfig

    1. 在 Google Cloud Console 中,转到虚拟机实例页面。

      转到虚拟机实例

    2. 点击要为其设置元数据值的虚拟机的名称。

    3. 实例详情页面上,点击修改以修改设置。

    4. 自定义元数据下,添加以下元数据条目:

      键:enable-osconfig
      值:TRUE

      要使 OS Inventory Management(早期版本)正常运行,您需要同时设置 enable-osconfigenable-guest-attributes

      • 键:enable-osconfig
        值:TRUE
      • 键:enable-guest-attributes
        值:TRUE
    5. 点击保存以将更改应用于虚拟机。

gcloud

使用 project-info add-metadata 或带有 --metadata=enable-osconfig=TRUE 标志的 instances add-metadata 命令。

您可以使用下列其中一种方法将元数据值应用于项目或虚拟机:

  • 方法 1:在项目级元数据中设置 enable-osconfig,以将此项设置应用于项目中的所有实例:

    gcloud compute project-info add-metadata \
      --project PROJECT_ID \
      --metadata=enable-osconfig=TRUE
    

    要使 OS Inventory Management(早期版本)正常运行,您需要同时设置 enable-osconfigenable-guest-attributes

    gcloud compute project-info add-metadata \
      --project PROJECT_ID \
      --metadata=enable-guest-attributes=TRUE,enable-osconfig=TRUE
    

    PROJECT_ID 替换为您的项目 ID。

  • 选项 2:在现有实例的元数据中设置 enable-osconfig

    gcloud compute instances add-metadata VM_NAME \
      --metadata=enable-osconfig=TRUE
    

    要使 OS Inventory Management(早期版本)正常运行,您需要同时设置 enable-osconfigenable-guest-attributes

    gcloud compute instances add-metadata VM_NAME \
      --metadata=enable-guest-attributes=TRUE,enable-osconfig=TRUE
    

    VM_NAME 替换为虚拟机名称。

  • 方法 3:创建实例时,在实例元数据中设置 enable-osconfig

    gcloud compute instances create VM_NAME \
      --metadata=enable-osconfig=TRUE
    

    要使 OS Inventory Management(早期版本)正常运行,您需要同时设置 enable-osconfigenable-guest-attributes

    gcloud compute instances create VM_NAME \
      --metadata=enable-guest-attributes=TRUE,enable-osconfig=TRUE
    

    VM_NAME 替换为虚拟机名称。

API

您可以在 Cloud 项目级层或实例级层设置元数据值。

必须在元数据属性中设置以下键值对:

  • 键:enable-osconfig
    值:TRUE

对于 OS Inventory Management,还要添加以下键值对:

  • 键:enable-guest-attributes
    值:TRUE

停用不需要的功能

对于您可能不需要的功能,可以通过设置以下元数据值来将其停用:osconfig-disabled-features=FEATURE1,FEATURE2

FEATURE1,FEATURE2 替换为以下任意值:

  • OS Inventory Management:osinventory
  • OS Patch Management:tasks
  • OS Configuration Management:guestpolicies

您可以使用 Google Cloud Console、gcloud 命令行工具或 Compute Engine API 来设置这些值。

控制台

您可以使用下列其中一种方法针对您的 Cloud 项目或虚拟机停用元数据值:

  • 方法 1:在项目级别的元数据中停用功能,以将此项设置应用于项目中的所有实例。

    1. 在 Google Cloud Console 中,转到元数据页面。

      转到元数据

    2. 点击修改

    3. 添加以下元数据条目:

      键:osconfig-disabled-features
      值:FEATURE1,FEATURE2

      例如:
      键:osconfig-disabled-features
      值:osinventory,guestpolicies

    4. 点击保存以应用更改。

  • 方法 2:在现有虚拟机的元数据中停用功能。

    1. 在 Google Cloud Console 中,转到虚拟机实例页面。

      转到虚拟机实例

    2. 点击要设置元数据值的虚拟机的名称。

    3. 实例详情页面上,点击修改以修改虚拟机设置。

    4. 自定义元数据下,添加以下元数据条目:

      键:osconfig-disabled-features
      值:FEATURE1,FEATURE2

      例如:
      键:osconfig-disabled-features
      值:osinventory

    5. 点击保存以将更改应用于虚拟机。

gcloud

使用 project-info add-metadata 或带有 --metadata=osconfig-disabled-features 标志的 instances add-metadata gcloud 命令

如果您要停用多项功能,则标志的格式必须为 --metadata=osconfig-disabled-features=FEATURE1,FEATURE2。请参阅示例 2。

示例

示例 1 如需使用 gcloud 命令行工具在 Cloud 项目级停用 OS Patch Management,请运行以下命令:

gcloud compute project-info add-metadata \
    --project PROJECT_ID \
    --metadata=osconfig-disabled-features=tasks

示例 2 如需使用 gcloud 命令行工具在项目级别停用 OS Configuration Management 和 OS Inventory Management,请运行以下命令:

gcloud compute project-info add-metadata \
    --project PROJECT_ID \
    --metadata=osconfig-disabled-features=osinventory,guestpolicies

PROJECT_ID 替换为您的项目 ID。

API

您可以在 Cloud 项目级层或实例级层设置元数据值。

必须在元数据属性中设置以下键值对:

  • 键:osconfig-disabled-features
  • 值:可以是以下任一标志或这些标志的组合:
    • osinventory
    • tasks
    • guestpolicies

活跃 OS Config 代理的要求

要想使 OS Config 代理被视为活跃并且可计费,它必须满足以下所有要求:

  • 必须设置 VM 管理器。
  • 虚拟机必须处于 RUNNING 状态,并且 OS Config 代理必须正在与 OS Config 服务通信。

    如果虚拟机停止、暂停或断开与网络的连接,则该虚拟机上的代理不会被视为活跃代理。

验证设置

完成设置过程后,您可以使用验证核对清单验证设置。

后续步骤