配置 Google Cloud 以使用 Migrate for Compute Engine

在使用 Google Cloud Migrate for Compute Engine(以前称为 Velostrata)迁移应用之前,您需要配置您的 Google Cloud 组织。通过此配置,Migrate for Compute Engine 可以管理迁移并与相关的其他组件进行通信。

Google Cloud 配置包括:

  1. 设置 Google Cloud 账号、组织和项目,包括组织级层的权限以及 Migrate for Compute Engine 将用于其自身基础设施的项目。
  2. 在 Google Cloud 上设置网络,以便迁移过程中涉及的组件(例如 Migrate for Compute Engine、Google Cloud 以及迁移的来源环境)可以通过 Google Cloud Virtual Private Cloud 上的防火墙相互通信。
  3. 使用 Cloud Shell 创建 Google Cloud 角色和服务账号来设置权限,以便 Migrate for Compute Engine 可以创建资源并管理在迁移过程中使用的 API。

准备工作

  • 您需要确定将执行 Migrate for Compute Engine 脚本(用于配置 Google Cloud)的 Google Cloud 组织管理员账号。
  • 您需要设置 Google Cloud 虚拟私有云。Migrate for Compute Engine 使用 Virtual Private Cloud 来支持 Google Cloud 与来源环境之间的通信。
  • 您的 Google Cloud 组织是迁移过程中涉及的多个组件之一。您将分别为各个组件执行配置任务。如需了解详情,请务必阅读 Migrate for Compute Engine 架构说明

设置 Google Cloud 账号、组织和项目

您需要一个 Google Cloud 组织以迁移到 Google Cloud。拥有组织后,您将分配允许 Migrate for Compute Engine 脚本在 Google Cloud 中配置角色和服务账号的权限。您将创建一个 Migrate for Compute Engine 基础架构项目,该项目将托管 Velostrata Manager

  1. 转到 Google Cloud 控制台并登录。如果您还没有账号,请注册创建一个账号
  2. 如需设置组织,请参阅创建和管理组织。如需了解详情,请参阅确定 Google Cloud 着陆区的资源层次结构
  3. 将以下权限分配给运行账号和角色创建脚本的管理员:

    • 组织角色管理员
    • 组织管理员
    • 计算管理员
    • (项目)所有者

    如需详细了解 Google Cloud 账号、服务账号和角色等 IAM 概念,请参阅 IAM 概览

  4. 创建 Google Cloud 项目,以在 Google Cloud 上托管 Migrate for Compute Engine 基础架构。在本文档的其余部分中,我们将其称为基础架构项目

在 Google Cloud 上设置网络

Migrate for Compute Engine 使用 Google Cloud Virtual Private Cloud 网络和与来源环境的 VPN 连接,并且需要设置特定的网络规则才能完成迁移。要详细了解用于部署的防火墙、路由和网络标记,请参阅网络访问要求

网络配置任务假定您拥有 Google Cloud 虚拟私有云并已熟悉虚拟私有云防火墙规则。如需了解详情,请参阅 Google Cloud 虚拟私有云

使用 Cloud Shell 创建 Google Cloud 角色和服务账号

您需要创建可供 Migrate for Compute Engine 用于创建 Google Cloud 资源和管理 Cloud Storage API 的 Google Cloud 角色服务账号。Migrate for Compute Engine 包含用于进行这些更改的 Cloud Shell 脚本。

该脚本会在基础架构项目中创建角色和服务账号,除非您要迁移到多个 Google Cloud 项目。在这种情况下,该脚本将在组织级层创建 Velostrata Manager 角色,并在基础架构项目中创建其他角色和服务账号。

下表介绍了由 Cloud Shell 脚本创建的角色和服务账号。

角色 服务账号 已启用的权限
Velostrata Manager (velos_manager_deployment-name) velos-manager-deployment-name 能够为迁移创建所有资源(虚拟机、Cloud Storage 存储桶等)。
Migrate for Compute Engine Cloud Extensions 扩展 (velos_ce_deployment-name) velos-cloud-extension-deployment-name 能够管理用于迁移的 Cloud Storage API。

创建所需服务账号最简单的方法是使用随 Migrate for Compute Engine 一起提供的 Cloud Shell 脚本。

该脚本会启用以下 Google Cloud API:

  • Resource Manager API
  • Identity and Access Management (IAM) API
  • Compute Engine API
  • Cloud Storage API
  • Cloud Logging API
  • Cloud Monitoring API

尽管我们不推荐这样做,但您可以选择手动配置 Google Cloud

前提条件

如果您要迁移到组织内的多个项目,则需要使用数值形式的组织 ID

运行配置脚本

要运行配置脚本,请执行以下操作:

  1. 打开 Cloud Shell
  2. 切换到包含 Migrate for Compute Engine 脚本的目录:
    cd /google/migrate/gce
    
  3. 选择要附加到您的服务账号和角色 ID 的部署名称,例如 main
  4. 运行脚本:

      python3 velostrata_sa_roles.py -p project-ID -d deployment-name [-o organization]
    

    如需了解详情,请参阅下面的配置脚本参考

单个项目的配置示例

在本例中,您将使用部署名称 mainvelostrata 基础架构项目中的角色和服务账号,对 Google Cloud 进行配置。

python3 velostrata_sa_roles.py -p velostrata -d main

此命令将执行以下操作:

  • velostrata 项目中创建 velos_manager_mainvelos_ce_main 角色。
  • velostrata 项目中创建 velos-manager-main@velostrata.iam.gserviceaccount.comvelos-cloud-extension-main@velostrata.iam.gserviceaccount.com 服务账号。

多个项目的配置示例

在本示例中,您将配置具有角色和服务账号的 Google Cloud,以处理到多个项目的迁移。脚本将使用 velostrata 基础架构项目。

运行带有 -o 标志的脚本会在组织级层创建管理员角色,从而使您可以将虚拟机迁移到多个项目。

python3 velostrata_sa_roles.py -p velostrata -d main -o 12345678

此命令将执行以下操作:

  • 在 ID 为 12345678 的组织中创建 velos_manager_main 角色。
  • velostrata 项目中创建 velos_ce_main 角色。
  • velostrata 项目中创建 velos-manager-main@velostrata.iam.gserviceaccount.comvelos-cloud-extension-main@velostrata.iam.gserviceaccount.com 服务账号。

配置脚本参考

使用 velostrata_sa_roles.py 脚本创建可向 Migrate for Compute Engine 授予创建资源和管理 Cloud Storage API 的权限的 Google Cloud 角色和服务账号。

该脚本会在基础架构项目中创建角色和服务账号,除非您要迁移到多个 Google Cloud 项目。 在这种情况下,该脚本将在组织级层创建 Velostrata Manager 角色,并在基础架构项目中创建其他角色和服务账号。

注意,为了使此脚本成功完成,您需要(为运行脚本的管理员)分配设置 Google Cloud 账号、组织和项目中所述的角色。

python3 velostrata_sa_roles.py -p project-ID -d deployment-name [-o organization-ID]

参数

参数 说明 必需
-d--deployment-name 指定部署名称。此名称会附加到服务账号和角色名称之后。必须少于 8 个字符,并且只能包含小写字母和数字。 是。
-p--project-id 指定将托管迁移的 Google Cloud 项目的 ID。 是。
-o--org-id 指定数值形式的 Google Cloud 组织 ID。如果要迁移到多个 Google Cloud 项目,请使用此参数。 否。

后续步骤