基础设施即程序代码工具Terraform 1.1更新重构机制并强化Cloud CLI功能

HashiCorp发布最新的基础设施即程序代码工具Terraform 1.1,这个版本加入了moved陈述式,让用户更简单安全地进行重构,另外,官方还改进了Terraform Cloud和Enterprise的CLI,提供更多新功能以及更好的错误消息提示。

Terraform被广泛地用来配置多云基础设施,以及自动化资源调度,而随着企业所管理的基础设施和复杂性不断增加,Terraform配置管理难度也跟着提升。过去在发生这种情况时,用户通常会想要进行重构,例如把单个模块拆分成多个模块,可能由多个模块共享单一配置,又或是使用多个不同的配置。

现在Terraform加入了moved陈述式,使用模块本身程序代码来进行重构的新机制,用户能够同时计划、预览和验证多个重构操作。在之前的版本,重构工作需要通过使用CLI,来执行terraform state mv指令,并且对配置进行相对应的更改,官方提到,这个过程通常复杂且具有风险,用户需要在不破坏以及重建的情况下,更新基础设施的状态。

另外,模块作者和Terraform Cloud用户也无法直接重构模块,官方解释,对模块作者来说,重构模块需要发布一个新的主要版本,以及针对最终用户提供手动更新状态的指南,而Terraform Cloud和Enterprise用户,在核心Terraform Cloud工作流程中进行重构更是不可行,因为用户需要根据配置更改创建计划,而这通常会需要管理员使用CLI将工作区切换到本地状态,来进行有风险的变更。

而新的moved陈述式会被写入到新的模块程序代码中,在计划阶段,Terraform就能够结合状态更新和配置变更,因此能够安全地重构Terraform模块和配置。moved陈述式可被用于重命名资源、重命名模块调用,还有拆分模块成多个模块等用途。由于这些操作都是在配置中声明,Terraform会将更新解释为计划输出的一部分,因此用户可以一次验证和应用多个操作,在用户不需要操作状态的情况下,能更容易且安全地进行重构,模块作者和Terraform Cloud,也就能够顺畅地重构工作流程。

在Terraform 1.1中,官方想要通过添加Terraform Cloud和Terraform Enterprise的新集成,来强化由CLI驱动的工作流程。在之前的版本,用户须在后端配置中声明一个远程后端,来连接到Terraform Cloud,虽然这种集成方式可以运行,但是整体体验和功能不尽理想,新的集成方式做了多项改进,包括更新错误消息和CLI提示、澄清远程状态存储和远程操作,还让用户更好地了解Terraform Cloud工作区等。