1.3. 从其他版本进行迁移
从早期的集合或社区版本迁移,以使用 HashiCorp 和 Ansible Automation Platform 集成的最高级功能。
1.3.1. 从 cloud.terraform 迁移到 hashicorp.terraform 复制链接链接已复制到粘贴板!
如果您使用现有的 cloud.terraform (CLI-form)集合,您可以将现有的 playbook 迁移到具有hicorp.terraform (API)集合的 hashicorp.terraform。需要配置的 hashicorp.terraform 的主要模块是 hicorp.terraform.configuration_version,并且有 hicorp.terraform.run。
1.3.1.1. 配置 hashicorp.terraform.configuration_version 模块 复制链接链接已复制到粘贴板!
要迁移到 hashicorp.terraform 集合,您必须配置 hashicorp.terraform.configuration_version 模块。此模块管理 Terraform Enterprise 或 HCP Terraform 中的配置版本。
先决条件
-
安装 Ansible Automation Platform 认证
有hicorp.terraform集合。 - 验证在 Terraform Enterprise 或 HCP Terraform 中正确设置了有效的机构和工作区。
流程
从
cloud.terraform模块中复制您的自动化任务。示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置以下所需参数:
-
workspace_id或workspace+organization: 将创建配置版本的工作区 ID 或工作区名称和组织,该文件将被上传(表示state: present)。 configuration_files_path: 上传所需 Terraform Enterprise 或 HCP Terraform 文件的路径来创建配置版本(用于state: present)。模块接受configuration_files_path的两个文件类型:- 目录: 包含 Terraform Enterprise 或 HCP Terraform 文件的任何文件夹。模块会自动从所有内容中自动创建 .tar.gz 文件。
- .tar.gz Archive: Pre-compressed gzip tarball.模块验证 TAR 格式和 gzip 压缩。
configuration_version_id: 要存档的配置版本 ID (状态: archive)。此操作会删除关联的上传的 .tar.gz 文件。注意以下几点:- 仅上传使用 API 或 CLI 创建的版本,没有活跃的运行,且不是任何工作区的当前版本可以被归档。
-
如果未指定
configuration_version_id,Terraform Enterprise 或 HCP Terraform 在工作区中选择最新的批准的configuration_version_id。
-
auto_queue_runs : 确定 Terraform Enterprise 或 HCP Terraform 是否在配置上传后自动启动(默认为
true),或者需要手动启动(false)。
-
- 根据需要设置其他 可选参数。
1.3.1.2. 配置 hashicorp.terraform.run 模块 复制链接链接已复制到粘贴板!
hashicorp.terraform.run 模块可让您使用 create, apply, cancel, 和 discard 操作来管理 Terraform Enterprise 或 HCP Terraform 运行。您可以使用可自定义设置在指定的工作区上触发计划或应用操作。
先决条件
- 确保正确配置了有效的 Terraform API 令牌,以便与您的 Terraform Enterprise 或 HCP Terraform 环境进行身份验证。
- 验证在 Terraform Enterprise 或 HCP Terraform 中正确设置了有效的机构和工作区。
流程
创建 run 模块。
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置以下所需参数:
-
workspace_id或workspace+organization: 将创建配置版本的工作区 ID 或工作区名称和组织,该文件将被上传(表示state: present)。 -
run_id: 要应用、取消或丢弃操作的目标的唯一标识符。 -
tf_token: Terraform API 身份验证令牌。如果没有设置这个值,则使用TF_TOKEN环境变量。
-
(可选)配置内置的轮询选项,以确定 Terraform Enterprise 或 HCP Terraform 操作的等待周期完成:
-
poll: true:(默认)每poll_interval秒(默认为 5s)检查运行状态,直到达到 completion 或poll_timeout(default: 25s)为止,返回最终状态。 -
poll: false: 在启动运行后立即返回,而不等待。
-
- 根据需要设置其他 可选参数。
1.3.1.3. 带有corp.terraform 模块的迁移示例 复制链接链接已复制到粘贴板!
这些示例前后用于帮助用户了解如何在真实环境中配置模块。
1.3.1.3.1. 示例 1:仅计划 复制链接链接已复制到粘贴板!
-
之前(
cloud.terraform.terraform):
After (
hicorp.terraform reference):configuration_version模块:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 run 模块运行
plan_only:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3.1.3.2. 示例 2:计划和应用 复制链接链接已复制到粘贴板!
之前(
cloud.terraform.terraform):生成计划:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用计划:
- name: Plan and Apply Workflow - Step 2 - Apply Plan cloud.terraform.terraform: project_path: "/usr/home/tf" plan_file: "/usr/home/tf/workflow.tfplan" state: present
- name: Plan and Apply Workflow - Step 2 - Apply Plan cloud.terraform.terraform: project_path: "/usr/home/tf" plan_file: "/usr/home/tf/workflow.tfplan" state: presentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
之后(隐藏corp.terraform.run):configuration_version模块:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - run 模块具有两个用于计划和应用工作流的选项:
选项 1: 使用
auto_apply参数来处理计划并应用工作流:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 选项 2: 使用两个子步骤来创建
save_plan运行,然后应用它:创建计划:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 应用计划。您可以从 run 模块任务的输出中获取
run_id:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3.2. 从 Terraform 社区版本迁移 复制链接链接已复制到粘贴板!
如果要将 Ansible Automation Platform 与 Terraform Enterprise (TFE)或 HCP Terraform 搭配使用,且您当前正在使用 Terraform 社区版本(TCE),您必须迁移到 TFE 或 HCP Terraform,然后更新 Ansible Automation Platform 配置以使用 TFE 或 HCP Terraform。
1.3.2.1. 从社区版本迁移 复制链接链接已复制到粘贴板!
当您从 TCE 迁移到 TFE 或 HCP Terraform 时,您不会迁移集合本身。相反,您要调整现有 TCE 使用量以使用 TFE 或 HCP Terraform。
迁移后,您必须更新 Ansible Automation Platform 凭证、执行环境和作业模板。
cloud.terraform 集合只支持 HCP Terraform 中的 CLI 驱动的工作流。
先决条件
- 使用最新支持的 Terraform 版本(1.11 或更高版本)。
-
按照下面的 附加资源 下的
tf-migrateCLI 指令进行操作。 - 确保 HCP Terraform 或 TFE 工作区没有设置为自动应用计划。
流程
要防止针对 TFE 或 HCP Terraform 运行 playbook 时的错误,请在运行 playbook 前执行以下操作:
- 确认执行环境中的 Terraform 版本与 TFE 或 HCP Terraform 中声明的版本相同。
在 TFE 或 HCP Terraform 中执行初始化:
terraform init
terraform initCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 如果您在执行环境中有一个本地状态文件,请删除本地状态文件。
- 从 HCP Terraform 或 Terraform Enterprise 获取令牌,您将用来在后续步骤中创建凭证。确保令牌具有必要的权限,基于团队或用户令牌在 playbook 中执行所需的功能。
- 从 playbook 定义中删除后端配置文件和文件。
如果要在 TF 配置中的默认设置或环境变量中添加工作区,如果要定义在更新 playbook 本身外的工作空间。
注意您可以将工作区添加到 playbook 中,以扩展工作空间利用率。
在 Ansible Automation Platform 用户界面中:
(可选)在迁移完成后,您可以从执行环境中的集合运行额外的模块和插件: