在 Compute Engine 上,您可以使用 VM 管理器来管理虚拟机 (VM) 上运行的操作系统。
如需查看设置虚拟机以使用 VM 管理器所需的步骤,请参阅设置概览。
设置 VM 管理器后,您可以查看通过 OS Config API 执行的 API 操作的审核日志,请参阅查看 VM 管理器审核日志。
准备工作
- 如果您要使用本指南中的命令行示例,请执行以下操作:
- 安装或更新到 gcloud 命令行工具的最新版本。
- 设置默认区域和可用区。
- 如果您要使用本指南中的 API 示例,请设置 API 访问权限。
设置概览
如需设置 VM 管理器,请完成以下步骤:
在您的 Google Cloud 项目上,启用 OS Config API。
通过设置项目或实例元数据来启用 OS Config 代理。您可以设置每个虚拟机上的实例元数据或适用于项目中所有虚拟机的项目元数据。
如果您的虚拟机在专用 VPC 网络中运行,并且无法访问公共互联网,请启用专用 Google 访问通道。
在每个虚拟机上,检查您是否有启用的服务帐号。对于使用
gcloud
命令行工具或 Google Cloud Console 创建的虚拟机,系统默认启用服务帐号。 您无需向此服务帐号授予任何 IAM 角色。在每个虚拟机上,检查是否安装了 OS Config 代理。
如果尚未安装 OS Config 代理,请在每个虚拟机上安装该代理。
可选。针对您的项目或每个虚拟机,停用不需要的功能。
支持的操作系统
如需查看支持虚拟机管理器的操作系统和版本的完整列表,请参阅操作系统详细信息。
启用 OS Config Service API
在您的 Cloud 项目中,启用 OS Config API。如需启用 API,请运行以下命令:
gcloud services enable osconfig.googleapis.com
设置元数据值
在您的 Cloud 项目或虚拟机上,将 enable-osconfig
元数据值设置为 TRUE
。将 enable-osconfig
元数据值设置为 TRUE
可启用以下功能:
- OS Patch Management
- OS Configuration Management
- OS Inventory Management。要使 OS Inventory Management 正常运行,您还必须将
enable-guest-attributes
元数据值设置为TRUE
。
控制台
您可以使用下列其中一种方法将元数据值应用于您的 Cloud 项目或虚拟机:
方法 1:在项目级元数据中设置
enable-osconfig
,以将此项设置应用于项目中的所有虚拟机。在 Google Cloud Console 中,转到元数据页面。
点击修改。
添加以下元数据条目:
键:
enable-osconfig
值:TRUE
为了使 OS Inventory Management 正常运行,您需要同时设置
enable-osconfig
和enable-guest-attributes
:- 键:
enable-osconfig
值:TRUE
- 键:
enable-guest-attributes
值:TRUE
- 键:
点击保存以应用更改。
方法 2:创建实例时,在虚拟机元数据中设置
enable-osconfig
。在 Google Cloud Console 中,转到虚拟机实例页面。
点击创建。
在创建实例页面中,为您的虚拟机设置所需的属性。
展开管理、安全、磁盘、网络、单独租用。
在元数据部分中,添加以下元数据条目:
键:
enable-osconfig
值:TRUE
。为了使 OS Inventory Management 正常运行,您需要同时设置
enable-osconfig
和enable-guest-attributes
:- 键:
enable-osconfig
值:TRUE
- 键:
enable-guest-attributes
值:TRUE
- 键:
点击创建以创建实例。
方法 3:在现有虚拟机的元数据中设置
enable-osconfig
。在 Google Cloud Console 中,转到虚拟机实例页面。
点击要为其设置元数据值的虚拟机的名称。
在实例详情页面上,点击修改以修改设置。
在自定义元数据下,添加以下元数据条目:
键:
enable-osconfig
值:TRUE
。为了使 OS Inventory Management 正常运行,您需要同时设置
enable-osconfig
和enable-guest-attributes
:- 键:
enable-osconfig
值:TRUE
- 键:
enable-guest-attributes
值:TRUE
- 键:
点击保存以将更改应用于虚拟机。
gcloud
使用 project-info add-metadata
或带有 --metadata=enable-osconfig=TRUE
标志的 instances add-metadata
gcloud
命令。
您可以使用下列其中一种方法将元数据值应用于项目或虚拟机:
方法 1:在项目级元数据中设置
enable-osconfig
,以将此项设置应用于项目中的所有实例:gcloud compute project-info add-metadata \ --project PROJECT_ID \ --metadata=enable-osconfig=TRUE
为了使 OS Inventory Management 正常运行,您需要同时设置
enable-osconfig
和enable-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-osconfig
和enable-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-osconfig
和enable-guest-attributes
:gcloud compute instances create VM_NAME \ --metadata=enable-guest-attributes=TRUE,enable-osconfig=TRUE
将
VM_NAME
替换为虚拟机名称。
API
您可以在 Cloud 项目级层或实例级层设置元数据值。
- 如需了解如何设置项目级别的元数据,请按照设置项目级自定义元数据的 API 说明进行操作。
- 如需了解如何设置实例元数据,请按照设置实例元数据的 API 说明进行操作。
必须在元数据属性中设置以下键值对:
- 键:
enable-osconfig
值:TRUE
对于 OS Inventory Management,还要添加以下键值对:
- 键:
enable-guest-attributes
值:TRUE
检查 OS Config 代理是否已安装
Red Hat Enterprise Linux (RHEL)、Debian、CentOS 和版本日期为 v20200114
或之后的 Windows 映像上默认安装了 OS Config 代理。
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 代理:
- 使用终端手动安装代理。
- 在虚拟机上使用启动脚本。
- 使用 Google Cloud 的运维套件代理政策在多个虚拟机上自动安装 OS Config。
手动安装代理
可使用这种方法在现有虚拟机上安装 OS Config 代理。
如需安装代理,请完成以下步骤:
安装 OS Config 代理。
Windows Server
如需在 Windows Server 上安装 OS Config 代理,请运行以下命令:
googet -noconfirm install google-osconfig-agent
Ubuntu
如需在 Ubuntu 虚拟机上安装 OS Config 代理,请运行以下命令:
设置 Ubuntu 代码库。
对于 Ubuntu 16.04,请运行以下命令:
添加 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"
导入 Google Cloud 公钥。
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | \ sudo apt-key add -
对于 Ubuntu 18.04 及更高版本,请运行以下命令:
添加 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"
导入 Google Cloud 公钥。
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | \ sudo apt-key add -
安装 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),请运行以下命令:
添加 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"
导入 Google Cloud 公钥。
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | \ sudo apt-key add -
对于 Debian 10 (Buster),请运行以下命令:
添加 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"
导入 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 代理,请运行以下命令:
设置 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=1 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=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOM"
导入适用于 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
安装 OS Config 代理。
sudo zypper -n --gpg-auto-import-keys install google-osconfig-agent
使用启动脚本安装代理
您还可以使用手动安装命令创建启动脚本,并在创建虚拟机的过程中安装 OS Config 代理。
- 复制适用于您的操作系统的手动命令。
-
例如,如果您使用
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
替换为虚拟机名称。
停用不需要的功能
对于您可能不需要的功能,可以通过设置以下元数据值来将其停用: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:在项目级别的元数据中停用功能,以将此项设置应用于项目中的所有实例。
在 Google Cloud Console 中,转到元数据页面。
点击修改。
添加以下元数据条目:
键:
osconfig-disabled-features
值:FEATURE1,FEATURE2
例如:
键:osconfig-disabled-features
值:osinventory,guestpolicies
点击保存以应用更改。
方法 2:在现有虚拟机的元数据中停用功能。
在 Google Cloud Console 中,转到虚拟机实例页面。
点击要设置元数据值的虚拟机的名称。
在实例详情页面上,点击修改以修改虚拟机设置。
在自定义元数据下,添加以下元数据条目:
键:
osconfig-disabled-features
值:FEATURE1,FEATURE2
例如:
键:osconfig-disabled-features
值:osinventory
点击保存以将更改应用于虚拟机。
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 项目级层或实例级层设置元数据值。
- 如需了解如何设置项目级别的元数据,请按照设置项目级自定义元数据的 API 说明进行操作。
- 如需了解如何设置实例元数据,请按照设置实例元数据的 API 说明进行操作。
必须在元数据属性中设置以下键值对:
- 键:
osconfig-disabled-features
- 值:可以是以下任一标志或这些标志的组合:
osinventory
tasks
guestpolicies
更新 OS Config 代理
如需更新 OS Config 代理,需要为您的操作系统更新软件包。
CentOS/RHEL
如需在 CentOS 和 RHEL 操作系统上更新代理,请运行以下命令:
sudo yum update google-osconfig-agent
Debian/Ubuntu
如需在 Debian 和 Ubuntu 操作系统上更新代理,请运行以下命令:
sudo apt update sudo apt install google-osconfig-agent
SLES
如需在 SLES 上更新代理,请运行以下命令:
sudo zypper -n update google-osconfig-agent
Windows
如需在 Windows 操作系统上更新代理,请运行以下命令:
googet update google-osconfig-agent
活跃 OS Config 代理的要求
要想使 OS Config 代理被视为活跃并且可计费,它必须满足以下所有要求:
- 必须设置 VM 管理器。
虚拟机必须处于
RUNNING
状态,并且 OS Config 代理必须正在与 OS Config 服务通信。如果虚拟机停止、暂停或断开与网络的连接,则该虚拟机上的代理不会被视为活跃代理。