使用 Terraform 部署 VPC
了解如何使用 Infrastructure Manager 部署虚拟私有云 (VPC)。
本快速入门使用存储在公共 GitHub 代码库中的 Terraform 配置。该配置定义了要预配的 VPC。
准备工作
-
登录您的 Google 账号。
如果您还没有 Google 账号,请 注册新账号。
-
安装 Google Cloud CLI。
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init -
选择或创建项目所需角色
- 选择项目:选择项目不需要特定的 IAM 角色,您可以选择已被授予角色的任何项目。
-
创建项目:如需创建项目,您需要 Project Creator 角色
(
roles/resourcemanager.projectCreator),该角色包含resourcemanager.projects.create权限。了解如何授予 角色。
-
创建 Google Cloud 项目:
gcloud projects create PROJECT_ID
将
PROJECT_ID替换为您要创建的 Google Cloud 项目名称。 -
选择您创建的 Google Cloud 项目:
gcloud config set project PROJECT_ID
将
PROJECT_ID替换为您的 Google Cloud 项目名称。
-
验证是否已为您的 Google Cloud 项目启用结算功能。
启用 Infrastructure Manager API:
启用 API 所需的角色
如需启用 API,您需要 Service Usage Admin IAM 角色 (
roles/serviceusage.serviceUsageAdmin),该角色包含serviceusage.services.enable权限。了解如何授予 角色。gcloud services enable config.googleapis.com
-
设置身份验证:
-
确保您拥有 Create Service Accounts IAM 角色
(
roles/iam.serviceAccountCreator) 和 Project IAM Admin 角色 (roles/resourcemanager.projectIamAdmin)。了解如何授予角色。 -
创建服务帐号:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
将
SERVICE_ACCOUNT_NAME替换为服务帐号的名称。 -
向服务帐号授予
roles/config.agentIAM 角色:gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent
请替换以下内容:
SERVICE_ACCOUNT_NAME:服务账号的名称PROJECT_ID:您在其中创建服务帐号的项目的 ID
-
确保您拥有 Create Service Accounts IAM 角色
(
-
安装 Google Cloud CLI。
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init -
选择或创建项目所需角色
- 选择项目:选择项目不需要特定的 IAM 角色,您可以选择已被授予角色的任何项目。
-
创建项目:如需创建项目,您需要 Project Creator 角色
(
roles/resourcemanager.projectCreator),该角色包含resourcemanager.projects.create权限。了解如何授予 角色。
-
创建 Google Cloud 项目:
gcloud projects create PROJECT_ID
将
PROJECT_ID替换为您要创建的 Google Cloud 项目名称。 -
选择您创建的 Google Cloud 项目:
gcloud config set project PROJECT_ID
将
PROJECT_ID替换为您的 Google Cloud 项目名称。
-
验证是否已为您的 Google Cloud 项目启用结算功能。
启用 Infrastructure Manager API:
启用 API 所需的角色
如需启用 API,您需要 Service Usage Admin IAM 角色 (
roles/serviceusage.serviceUsageAdmin),该角色包含serviceusage.services.enable权限。了解如何授予 角色。gcloud services enable config.googleapis.com
-
设置身份验证:
-
确保您拥有 Create Service Accounts IAM 角色
(
roles/iam.serviceAccountCreator) 和 Project IAM Admin 角色 (roles/resourcemanager.projectIamAdmin)。了解如何授予角色。 -
创建服务帐号:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
将
SERVICE_ACCOUNT_NAME替换为服务帐号的名称。 -
向服务帐号授予
roles/config.agentIAM 角色:gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent
请替换以下内容:
SERVICE_ACCOUNT_NAME:服务账号的名称PROJECT_ID:您在其中创建服务帐号的项目的 ID
-
确保您拥有 Create Service Accounts IAM 角色
(
授予配置中资源的权限
您已授予运行 Infra Manager 所需的权限,但还需要授予特定于您要部署的配置中所述资源的权限。
授予 VPC 的权限,VPC 是 Terraform 配置中定义的资源。
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
--role=roles/compute.networkAdmin
请替换以下内容:
- SERVICE_ACCOUNT_NAME:服务帐号的名称。
- PROJECT_ID:您的项目 ID。
预览部署
在创建部署之前,您可以创建部署的预览。 您可以使用此预览来验证计划预配的资源。
以下命令填充了四个没有默认值的数值。
这些值包括:您的项目 ID、服务帐号名称、位置 us-central1 以及您要创建的网络名称
quickstart-vpc。
如需创建预览,请使用以下命令:
gcloud infra-manager previews create projects/PROJECT_ID/locations/us-central1/previews/quickstart-preview \
--service-account projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
--git-source-repo=https://github.com/terraform-google-modules/terraform-google-network \
--git-source-directory=modules/vpc \
--git-source-ref=main \
--input-values=project_id=PROJECT_ID,network_name=quickstart-vpc
创建预览后,您可以查看预览结果。 本快速入门跳过了此步骤,但如果您需要更多详细信息,可以查看 导出和查看预览结果 。
创建部署
使用 Infra Manager 创建部署。这意味着 Infra Manager 会预配 Terraform 配置中定义的资源。
本快速入门的配置有四个没有默认值的数值。以下命令添加了这些值:您的项目 ID、服务帐号名称、位置 us-central1
以及您要创建的网络名称 quickstart-vpc。
gcloud infra-manager deployments apply projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment \
--service-account=projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
--git-source-repo=https://github.com/terraform-google-modules/terraform-google-network \
--git-source-directory=modules/vpc \
--git-source-ref=main \
--input-values=project_id=PROJECT_ID,network_name=quickstart-vpc
部署完成后,您会看到:
Creating the deployment...done
VPC 现已创建并按照配置中的说明进行配置。
在 Cloud Build 中查看构建结果
如需查看 Infra Manager 用于 创建部署的 Cloud Build 作业,请在 Google Cloud 控制台中打开 构建记录 页面:
查看部署状态
部署完成后,您可以查看其说明,以查看有关该部署的信息,包括状态。
查看部署的说明:
gcloud infra-manager deployments describe projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment
输出包含有关部署的详细信息,包括部署的时间戳、最新修订版本的名称和状态。
对于状态,您会看到 ACTIVE。
查看有关已预配 VPC 的详细信息
查看有关已预配 VPC 的详细信息:
gcloud infra-manager resources list --revision=projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment/revisions/REVISION_ID
将 REVISION_ID 替换为最新修订版本的 ID。除非您多次部署,否则此 ID 为 r-0。您可以在上一部分中的部署说明中看到最新修订版本的
ID。
在控制台中查看 VPC
在控制台中查看 VPC:
您会看到名为 quickstart-vpc 的 VPC。这是 Infra Manager 预配的 VPC。
清理
为避免因本页面中使用的资源 导致您的 Google Cloud 账号产生费用,请确保删除不再需要的资源。
删除 VPC
删除 VPC 和有关部署的元数据:
gcloud infra-manager deployments delete projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment
可选:删除项目
如果您在新 Google Cloud 项目中部署了解决方案,并且不再需要该 项目,请完成以下步骤以将其删除:
- 在 Google Cloud 控制台中,前往管理资源页面。
- 在项目列表中,选择要删除的项目,然后点击删除。
- 在提示符处,输入项目 ID,然后点击关停 。
后续步骤
- 如需详细了解 Infra Manager,请参阅 Infra Manager 的工作原理。
- 详细了解 Infra Manager 和 Terraform。
- 更新部署。
- 实现部署自动化。
- 如需了解一组可与 Google CloudTerraform 搭配使用的配置和模块,请参阅 适用于 Google Cloud 的 Terraform 蓝图和模块。