IBM Cloud Docs
将资源从 Schematics 工作空间移动到项目中

将资源从 Schematics 工作空间移动到项目中

您可以通过将资源从 IBM Cloud® Schematics 工作空间 移动到 IBM Cloud® 项目来管理企业体系结构的生命周期。 虽然可以使用 Schematics 工作空间来使用 Terraform 和可部署体系结构,但可以使用项目来大规模管理完整生命周期。 完成此任务后,您在专用目录中具有可部署体系结构磁贴,并且可以从项目管理可部署体系结构的生命周期。

在此过程中,可以使用 CLI 命令 ibmcloud catalog utility create-product-from-workspaceibmcloud project config-create 来创建链接在一起的目录和项目,然后将 Schematics 工作空间资源移动到项目中。

观看并了解将已部署的资源移动到项目的过程。

观看并学习

视频文字记录

我是 Gili Mendel,是一个具有 IBM Cloud 开发团队的 STSM。 我将向您展示如何在 IBM Cloud 可部署体系结构或项目中移动 Schematics 工作空间。

Schematics 工作空间是在 IBM Cloud上运行 Terraform 自动化的方式。 工作空间包含指向 Git 存储库的链接,该存储库从中访存 Terraform 模板。 它还保存模板变量,以及创建模板变量时的资源状态。

在云上运行 Terraform IaaS 自动化是一种很好的方法,无需维护高度可用的 IBM Cloud® Object Storage 存储区,即可实现与云资源提供者的紧密集成。

但是,如果要驱动多个自动化,那么此方法不会扩展。 管理资源并向上滚动新版本的模板可能是一项艰巨的任务。

虽然企业利用 Terraform 自动化,但都是可部署的架构。 您可以发布参考体系结构,其中包含合规足迹指定,成本估算以及用于自动部署体系结构的 Terraform 模板。

Git 存储库用于迭代和构建体系结构及其自动化。 它可能对部署体系结构的用户可视,也可能不可视。 体系结构本身具有包含版本升级的生命周期。

步骤 1: 使用目录管理 CLI 从现有工作空间以及发布其新版本所需的生命周期创建可部署体系结构。

步骤 2: 使用项目 CLI 来修改工作空间,以便将其作为可部署体系结构由项目进行管理。 因此,可以将这些资源视为单个可部署体系结构版本配置,并且可以从多个环境中的管理帐户进行管理。 版本迁移,成本和合规占用空间都比较简单,并且都涉及到所部署的体系结构。

准备工作

  • 确保已创建 IBM Cloud® Schematics 工作空间,并且已在您的帐户中供应资源。 项目和工作空间必须在同一帐户中。
  • 设置 GIT_TOKEN 环境变量以认证 Git 源存储库。 例如,运行 export GIT_TOKEN="enter your GIT TOKEN"
  • 通过以下任一方式设置对帐户的访问权:
    • 设置 IC_API_KEY 环境变量以访问 IBM Cloud 帐户。 例如,运行 IC_API_KEY="Your API key"
    • 使用 trusted-profile-id 详细信息来访问 IBM Cloud 帐户。 有关更多信息,请参阅 查找可信概要文件标识。 例如,可信概要文件标识可能类似于 Profile-1bd5eala-000-4a6666-00000
  • 确保 项目目录管理 CLI 插件是最新的。 运行 ibmcloud plugin list 命令以查看 CLI 插件的当前版本。
  • 创建用于生产部署的项目,并记录要在其中移动资源的项目的名称和标识。
  • 确保在您的帐户中授权 Projects 服务与其他 IBM Cloud 服务进行通信。 有关更多信息,请参阅 授予 Projects 服务与其他 IBM Cloud 服务之间的访问权

从 Schematics 工作空间创建可部署体系结构

如果您已在 Schematics 工作空间中具有可部署体系结构,请跳过此部分。

如果使用 Schematics 工作空间或通过专用目录部署软件,那么可以使用 ibmcloud catalog 实用程序 create-product-from-workspace 命令将已部署的资源移至项目。

此命令执行以下与 Git相关的任务:

  • 克隆可部署体系结构存储库。
  • ibm_catalog.json 清单文件推送到新分支。
  • 创建占位符体系结构图 (architecture-diagram-placeholder.drawio.svg)。
  • 在存储库中创建 Git 发行版。
  • 提供发布资产 URL。

此命令还将完成以下与 IBM Cloud相关的任务:

  • 在 IBM Cloud中创建专用目录。
  • 创建在其中执行开发和测试的项目。
  • 使用可信概要文件标识或 API 密钥将项目和目录链接在一起。
  • 在专用目录中创建产品磁贴。
  • 将产品版本加载到新的专用目录中。
  • 将版本标记为可供共享。
  • 通过将工作空间移至目录来完成工作空间和可部署体系结构的加载。
  • 显示项目标识,目录标识,产品标识和版本定位器。

完成以下步骤以创建可部署体系结构并将所有已部署的资源移动到项目配置中:

  1. 运行 ibmcloud catalog 实用程序 create-product-from-workspace 命令。

    ibmcloud catalog utility create-product-from-workspace [--workspace-id ID] [--api-key KEY] [--trusted-profile-id ID] [--catalog-label LABEL] [--offering-label LABEL] [--project-name NAME] [--project-resource-group GROUP] [--target-version VERSION] [--variation-label LABEL]
    

    --api-key--trusted-profile-id 互斥。 您只需要一个或另一个。 --project-name 参数用于创建在其中执行开发和测试的项目。 为了简单起见,您可能希望将其命名为与工作空间标识相同。

    请参阅 utility create-product-from-workspace 命令选项的以下示例。

    ibmcloud catalog utility create-product-from-workspace --workspace-id us-south.workspace.move.xxxx --api-key $IC_API_KEY --catalog-label myCatalog --offering-label myOffering --project-name myProject --project-resource-group Default --target-version 1.0.0 --variation-label test_standard
    

    当命令完成运行时,命令提示符将返回 OK

  2. 通过查看落实,存储库和新发行版,验证 Git 中的结果。 您可以看到具有版本的 .tgz 文件。

  3. 在 IBM Cloud 控制台中验证结果:

    1. 转至 管理 > 目录 > 专用目录
    2. 选择新的专用目录。
    3. 在专用目录中选择新产品,然后选择 版本 选项卡。 请参阅您的可部署体系结构版本 1.0.0 (或类似版本)。 如果转至专用目录,那么会在磁贴中看到相同的可部署体系结构。
    4. 单击 导航菜单 图标 导航菜单图标 > 项目,然后查看新项目。
    5. 选择 配置 选项卡以查看可部署体系结构。 请查看它是否处于 draft 状态。

创建项目配置

ibmcloud project config-create 命令创建一个项目配置,该配置使 Schematics 工作空间在一个项目下运行,然后您可以在该项目中创建另一个版本,并根据需要修改可部署体系结构。

在开始本节之前,请确保在专用目录和正在运行的 Schematics 工作空间中具有可部署体系结构,并知道其 CRN。 您可以从 IBM Cloud 控制台中的资源列表或使用 CLI 来找到工作空间 CRN。

  • IBM Cloud 控制台: 在 IBM Cloud 控制台中,单击 导航菜单 图标 导航菜单图标 > 资源列表 > 开发者工具 > 查找工作空间,然后复制 CRN。
  • IBM Cloud CLI: 运行 ibmcloud schematics workspace get 命令以访存工作空间 CRN 详细信息。 例如,运行 ibmcloud schematics workspace get --id workspace-id --output destination folder --json output.json 以访存 Schematics 工作空间 CRN 详细信息。

完成以下步骤以添加项目配置并将 Schematics 工作空间资源移至项目:

  1. 运行 ibmcloud project config-create 命令。

    ibmcloud project config-create --project-id PROJECT-ID [--schematics-workspace-crn SCHEMATICS-WORKSPACE-CRN] [--definition-name DEFINITION-NAME] [--definition-locator-id DEFINITION-LOCATOR-ID]
    

    --project-id 的值来自先前使用“项目 UI”为部署-生产创建的项目。 --definition-locator-id 的值与先前部分中的版本定位器相同。

    请参阅 project config-create 命令选项的以下示例。

    ibmcloud project config-create --project-id myProdProject --schematics-workspace-crn MyWorkspaceCRN --definition-name production-deployment --definition-locator-id myVersionLocator
    

    当命令完成运行时,命令提示符将返回名称,状态和类型。

  2. 验证是否在项目中部署了 Terraform 模板:

    1. 在 IBM Cloud 控制台中,单击 导航菜单 图标 导航菜单图标 > 项目
    2. 选择您首次为部署生产创建的项目,然后转至 配置 选项卡。
    3. 单击 操作 图标 "操作" 图标 > 查看上次部署
    4. 在“部署成功”部分中,单击 已成功部署的更改 > 日志 以查看项目中的所有已部署资源。

Schematics 工作空间部署现在包含在新项目内的日志中。

如果要使用 CLI 验证结果,请运行 ibmcloud project getibmcloud project list 命令以验证工作空间是否已成功移至项目。

后续步骤

要完成可部署体系结构的剩余过程,请完成以下步骤:

  1. 配置可部署体系结构的部署详细信息。
  2. 定义 IAM 访问权。
  3. 添加体系结构图,先决条件和突出显示。
  4. 添加合规性信息 (控制)。
  5. 重新验证以接收成本估算。

有关如何完成这些步骤的更多信息,请参阅 将定制的可部署体系结构加入到专用目录中

有关更多信息,请参阅 采用企业体系结构