使用 Schematics 管理资源
使用 IBM Cloud Schematics 部署,修改和除去 IBM Cloud® 资源以应用 Terraform 模板。
部署资源
使用 Schematics 部署您的 Terraform configs
,或修改您的云资源。
准备工作
- 从 UI 创建工作空间 或通过 CLI 创建 工作空间。
- 确保您具有必需的 IAM 许可权,以在目标IBM Cloud 帐户中部署资源。
部署资源
-
从 工作空间仪表板中,选择要应用的 Terraform 模板的工作空间。
云 Schematics GitHub, 中列出了模板示例,您可以使用其中一个模板进行测试。 例如,Easy 多区 VPC。
-
选择设置选项卡。
-
在“详细信息”部分,单击“调用最新版本”,从链接的 GitHub 源代码库中获取最新版本的 Terraform 模板。 如果通过上载磁带归档文件 (
.tar
) 提供了 Terraform 模板,那么必须使用ibmcloud schematics workspace upload
命令来提供新版本的模板。 -
可选:复查为工作空间设置的变量。 在 Terraform 模板中引用变量时,都会使用变量的值。
-
单击生成计划以创建 Terraform 执行计划。 单击此按钮后,将打开工作空间“作业”页面,并且 Schematics 将运行
terraform plan
以将您在 IBM Cloud 帐户中已供应的资源的状态与要使用 Terraform 模板供应的资源进行比较。 -
单击作业查看执行计划的日志。 执行计划包括创建、修改或删除云资源的摘要,以实现您在Terraform模板中描述的状态。 如果 Terraform 配置文件中有语法错误,可以在日志文件中查看错误消息。
-
查看 Schematics 即将创建或更改的每个云资源的可用服务计划和定价信息。 某些服务随附取决于 IBM Cloud 帐户的限制。 如果您即将达到帐户的服务限制,那么在您增加服务配额或首先除去现有服务之前,不会供应资源。
-
准备就绪后,通过单击 应用计划来应用 Terraform 模板。 此操作等同于
terraform apply
命令。 单击按钮后,IBM Cloud Schematics 会根据执行计划中确定的操作开始调配、修改或删除云资源。 根据您要调配或修改的资源类型和数量,这一过程可能需要几分钟甚至几个小时才能完成。 在此期间,无法对工作空间进行更改。 应用所有更新后,云资源的状态将存储在 Terraform 状态文件中,IBM Cloud Schematics 用来确定 IBM Cloud 账户中存在哪些资源。如果要停止应用 Terraform 模板,那么可以使用 停止 按钮。 请注意,不会除去已创建的所有资源。 如果资源当前正在供应,那么 Schematics 将等待供应完成,然后停止在 Terraform 模板中创建,更新或删除任何其他资源。
-
查看任务日志,确保在配置、修改或删除过程中没有发生错误。
-
从导航中选择资源,即可找到 IBM Cloud 账户中可用的云资源摘要。
更新资源
要更新云资源,请根据资源需要进行必要的更改,并更新Terraform模板。
根据配置更改,Terraform 可能无法就地更新您的资源。 相反,Terraform 需要首先删除资源并创建新资源。 如果 Terraform 标识要除去并重新创建的资源,请确保不中断工作环境,或者删除数据。
要更新资源,请执行以下操作:
-
从 工作区仪表板中,选择指向已更新 Terraform 模板的工作区。
-
选择设置选项卡。
-
在“详细信息”部分,单击“调用最新版本”,从链接的 GitHub 源代码库中获取最新版本的 Terraform 模板。 如果通过上载磁带归档文件 (
.tar
) 提供了 Terraform 模板,那么必须使用ibmcloud schematics workspace upload
命令来提供新版本的模板。 -
如果要更改创建工作空间时设置的变量值,请更改变量值。
-
单击生成计划以创建 Terraform 执行计划。 请注意,在此期间不能更改工作区。
-
单击 作业 以查看执行日志。 作业日志提供 IBM Cloud Schematics 将要修改的所有资源的摘要。IBM Cloud Schematics 可能无法修改某些资源,并且建议除去并重新创建资源。
-
单击 应用计划 以应用新的 Terraform 模板版本。 根据您所做的更改,应用模板可能需要几分钟,也可能需要几个小时。 请注意,在此期间不能更改工作区。
如果要停止应用 Terraform 模板,那么可以使用 停止 按钮。 请注意,不会还原对已执行的资源的更新。 如果当前正在更新资源,那么 Schematics 将等待更新完成,然后停止在 Terraform 模板中创建,更新或删除任何其他资源。
-
查看任务日志,确保修改过程中没有发生错误。
-
在导航中,选择资源,并验证资源是否显示更新的配置。
管理云环境与 Terraform 配置之间的漂移
管理云环境的现实状态与基础架构代码 (也称为 drift
) 之间的偏差是实现基础架构作为代码的关键挑战。 出现偏差可能有许多原因,例如:
- 您在 Terraform 配置文件中添加,更新或除去了资源,而未运行基础结构代码。
- 您在没有 Terraform 的情况下手动添加,更新或除去了 IBM Cloud。
- 您使用过其他自动化工具,例如脚本,来操作云资源的状态。
请参阅使用工作空间 漂移检测 功能。
查看资源和部署详细信息
查看 IBM Cloud Schematics 部署的详细信息,以及您当前使用 IBM Cloud Schematics 管理的云资源。
- 从 工作区仪表板,选择要检查的工作区。
- 从导航栏中选择“设置”,查看工作区的活动摘要。
- 查看先前 Terraform 执行计划和已应用计划的日志。
- 从导航中选择“资源”,查看使用此工作区创建的云资源的状态。
- 要查看谁对 Terraform 模板进行了更改,请转至 GitHub 中链接到您工作空间的源存储库,并使用内置功能(例如,提交历史记录和拉取请求)来查看更改。
- 要查看 Schematics 发送到 IBM Cloud Activity Tracker Event Routing 的事件,请参阅 IBM Cloud Activity Tracker Event Routing 事件。
除去资源
要删除使用 IBM Cloud Schematics 配置的云资源,可以使用 Schematics 删除资源,删除工作区,或删除 Terraform 模板中的基础架构代码。
删除云资源不可撤销。 因此,请确保在除去资源之前备份了数据。 如果选择除去基础架构代码或注释掉 Terraform 配置文件中的资源,请确保完整查看执行计划的日志文件,以验证除去操作中是否包含所有资源。
要通过除去 Terraform 模板中的资源配置来除去资源:
-
在源存储库中的 GitHub 或本地机器上打开 Terraform 配置文件。
-
从该文件中除去基础架构代码,或者通过在每行开头添加
#
来注释掉要除去的资源。通过注释掉资源定义来除去资源的示例:
# resource ibm_is_instance "vsi1" { # name = "${local.BASENAME}-vsi2" # vpc = ibm_is_vpc.vpc.id # zone = "${local.ZONE}" # keys = [data.ibm_is_ssh_key.ssh_key_id.id] # image = data.ibm_is_image.ubuntu.id # profile = "cc1-2x4" # primary_network_interface { # subnet = ibm_is_subnet.subnet1.id # security_groups = [ibm_is_security_group.sg1.id] # } #}
-
提交对 Terraform 配置文件的更改。
-
从 工作空间仪表板中,选择刚更改的 Terraform 模板的工作空间。
-
从导航栏中选择设置。
-
在“详细信息”部分,单击“调用最新版本”,从链接的 GitHub 源代码库中获取最新版本的 Terraform 模板。 如果通过上载磁带归档文件 (
.tar
) 提供了 Terraform 模板,那么必须使用ibmcloud schematics workspace upload
命令来提供新版本的模板。 -
单击生成计划以创建 Terraform 执行计划。 工作区工作页面打开。 请注意,在此期间不能更改工作区。
-
单击作业查看执行计划的日志。 日志提供了 IBM Cloud Schematics 即将删除的所有资源的摘要。
-
点击“应用计划”,从您的账户中移除云资源。
如果要停止应用 Terraform 模板,那么可以使用 停止 按钮。 请注意,不会重新创建已除去的所有资源。 如果当前正在删除某个资源,那么 Schematics 将等待删除完成,然后停止在 Terraform 模板中创建,更新或删除任何其他资源。
-
查看日志文件,以确保在删除过程中未发生任何错误。
-
在导航中,选择资源,并验证是否除去了资源。
-
可选:除去所有资源后,除去工作空间。
-
打开 工作区仪表板,找到要删除的工作区。
-
单击 操作 选项卡,然后选择 删除工作空间 选项。
-
在 类型
workspace_name
中输入工作空间名称以确认 文本框。 -
单击删除按钮。
要使用 Schematics 控制台除去资源:
- 从 工作区仪表板,找到包含要删除的资源的工作区。
- 单击 操作 选项卡,然后选择 破坏资源 选项。
- 在 类型
workspace_name
中输入工作空间名称以确认 文本框。 请注意,销毁资源将从工作空间和 IBM Cloud中除去资源。 无法撤销此操作。 - 单击 破坏 按钮。
- 从导航中选择工作,查看资源删除日志。 确保在删除过程中未发生任何错误。
- 成功执行任务后,从导航中选择资源并验证资源是否已移除。
除去资源完成后,可以删除 Schematics 工作空间。
通过 CLI 部署资源
使用 Schematics 部署您的 Terraform configs
,或修改您的云资源。
开始之前:
- 从 CLI 创建工作空间 或使用 CLI 创建 工作空间。
- 确保拥有在 IBM Cloud 中部署资源所需的 IAM 权限。
要部署资源,请执行以下操作:
-
从 本地命令行界面 设置 CLI 和 Schematics 插件。
-
使用
ibmcloud schematics workspace list
命令列出工作空间。 -
使用
ibmcloud schematics workspace get
命令获取工作空间。 -
如果通过上载磁带归档文件 (
.tar
) 提供了 Terraform 模板,那么必须使用ibmcloud schematics workspace upload
命令。 -
使用
ibmcloud schematics plan
命令创建 Terraform 执行计划。 -
使用工作空间标识通过
ibmcloud schematics logs
命令检索日志。 -
准备就绪后,执行
ibmcloud schematics apply
命令。如果要停止应用 Terraform 模板,可以使用
ibmcloud schematics job delete
命令。 请注意,不会除去已创建的所有资源。 如果资源当前正在供应,那么 Schematics 将等待供应完成,然后停止在 Terraform 模板中创建,更新或删除任何其他资源。 -
查看任务日志,确保在配置、修改或删除过程中没有发生错误。
-
从 导航窗格 中选择“资源”,查看 IBM Cloud 账户中可用云资源的摘要。
通过 CLI 更新资源
要更新云资源,请根据资源需要进行必要的更改,并更新Terraform模板。
根据配置更改,Terraform 可能无法就地更新您的资源。 相反,Terraform 需要首先删除资源并创建新资源。 如果 Terraform 标识要除去并重新创建的资源,请确保不中断工作环境,或者删除数据。
要更新资源,请执行以下操作:
-
从 命令行界面 设置 CLI 和 Schematics 插件。
-
使用
ibmcloud schematics workspace list
命令列出工作空间。 -
使用
ibmcloud schematics workspace get
命令获取工作空间。 -
如果通过上载磁带归档文件 (
.tar
) 提供了 Terraform 模板,那么必须使用ibmcloud schematics workspace upload
命令。 -
使用
ibmcloud schematics plan
命令创建 Terraform 执行计划。 -
使用工作空间标识通过
ibmcloud schematics logs
命令检索日志。 -
准备就绪后,执行
ibmcloud schematics apply
命令。如果要停止应用 Terraform 模板,可以使用
ibmcloud schematics job delete
命令。 请注意,不会除去已创建的所有资源。 如果资源当前正在供应,那么 Schematics 将等待供应完成,然后停止在 Terraform 模板中创建,更新或删除任何其他资源。 -
查看任务日志,确保在配置、修改或删除过程中没有发生错误。
-
从 导航窗格 中选择“资源”,查看 IBM Cloud 账户中可用云资源的摘要。
通过 CLI 管理云环境与 Terraform 配置之间的漂移
管理云环境的现实状态与基础架构代码 (也称为 drift
) 之间的偏差是实现基础架构作为代码的关键挑战。 出现偏差可能有许多原因,例如:
- 您在 Terraform 配置文件中添加,更新或除去了资源,而未运行基础结构代码。
- 您在没有 Terraform 的情况下手动添加,更新或除去了 IBM Cloud。
- 您使用过其他自动化工具,例如脚本,来操作云资源的状态。
请参阅使用工作空间 漂移检测 功能。
通过 CLI 查看资源和部署详细信息
查看 IBM Cloud Schematics 部署的详细信息,以及您当前使用 IBM Cloud Schematics 管理的云资源。
- 从 命令行界面 设置 CLI 和 Schematics 插件。
- 从 导航窗格 中选择“资源”,查看 IBM Cloud 账户中可用云资源的摘要。
- 要查看谁对 Terraform 模板进行了更改,请转至 GitHub 中链接到您工作空间的源存储库,并使用内置功能(例如,提交历史记录和拉取请求)来查看更改。
- 要查看 Schematics 发送到 IBM Cloud Activity Tracker Event Routing 的事件,请参阅 IBM Cloud Activity Tracker Event Routing 事件。
通过 CLI 除去资源
要删除使用 IBM Cloud Schematics 配置的云资源,可以使用 Schematics 删除资源,删除工作区,或删除 Terraform 模板中的基础架构代码。
删除云资源不可撤销。 因此,请确保在除去资源之前备份了数据。 如果选择除去基础架构代码或注释掉 Terraform 配置文件中的资源,请确保完整查看执行计划的日志文件,以验证除去操作中是否包含所有资源。
从 Terraform 模板中删除基础架构代码,以移除资源:
-
在源存储库中的 GitHub 或本地机器上打开 Terraform 配置文件。
-
从该文件中除去基础架构代码,或者通过在每行开头添加
#
来注释掉要除去的资源。注释掉资源的示例:
#resource ibm_is_instance "vsi1" { # name = "${local.BASENAME}-vsi2" # vpc = ibm_is_vpc.vpc.id # zone = "${local.ZONE}" # keys = [data.ibm_is_ssh_key.ssh_key_id.id] # image = data.ibm_is_image.ubuntu.id # profile = "cc1-2x4" # primary_network_interface { # subnet = ibm_is_subnet.subnet1.id # security_groups = [ibm_is_security_group.sg1.id] # } #}
-
提交对 Terraform 配置文件的更改。
-
从 命令行界面 设置 CLI 和 Schematics 插件。
-
使用
ibmcloud schematics workspace get
命令获取工作空间。 -
如果通过上载磁带归档文件 (
.tar
) 提供了 Terraform 模板,那么必须使用ibmcloud schematics workspace upload
命令。 -
使用
ibmcloud schematics plan
命令创建 Terraform 执行计划。 -
使用工作空间标识通过
ibmcloud schematics logs
命令检索日志。 -
准备就绪后,执行
ibmcloud schematics apply
命令。如果要停止应用 Terraform 模板,可以使用
ibmcloud schematics job delete
命令。 请注意,不会除去已创建的所有资源。 如果资源当前正在供应,那么 Schematics 将等待供应完成,然后停止在 Terraform 模板中创建,更新或删除任何其他资源。 -
查看任务日志,确保在配置、修改或删除过程中没有发生错误。
-
从 导航窗格 中选择“资源”,查看 IBM Cloud 账户中可用云资源的摘要。
-
可选: 除去所有资源后,使用
ibmcloud schematics workspace delete
命令除去工作空间。