gpt4 book ai didi

terraform - 如何在 terraform 中回滚到以前的状态

转载 作者:行者123 更新时间:2023-12-03 15:35:54 28 4
gpt4 key购买 nike

我正在处理 terraform 任务并试图了解状态文件的工作原理。我已经创建了 main.tf 文件

vpc,firewall,subnet,compute_instance

必须在 GCP 中创建。所以我已将其应用于 GCP 环境和文件名 terraform.tfstate文件已创建,我将此文件备份到名为 1st-run 的文件夹中。

现在我更新了我的 main.tf
2vpc,2firewalls,2subnets,compute_instance

因为我需要为我的 vm. 添加另一个 nic.Did terraform apply 并且创建了环境并创建了 terraform.tfstate 文件。我将此文件备份到名为 2nd-run 的文件夹中.

我想回滚我执行第一次运行的环境。我有那个位于 1st-run 文件夹中的状态文件。

通过使用状态文件而不是触摸代码来回滚的命令是什么,以便我的 GCP 环境自动具有
vpc,firewall,subnet,compute_instance

这是我第一次执行的。

最佳答案

目前无法回滚到 Terraform 中的状态文件中描述的先前状态。 Terraform 总是计划更改,目标是从先前状态(最新状态快照)移动到由配置表示的目标状态。 Terraform 还为状态中未跟踪的信息使用配置,例如提供程序配置。

在 Terraform 中表示“回滚”的常用方法是将您的配置置于版本控制中并在每次更改之前提交,然后您可以根据需要使用版本控制系统的功能恢复到旧配置。

但是,并非所有更改都可以完全通过还原 VCS 更改来回滚。例如,如果您添加了一个新的 provider该提供程序的块和资源都在一次提交中,然后应用结果,为了回滚,您需要更改配置以仍然包含 provider阻止但不包括任何 resource块,因此您需要在还原期间调整配置。然后 Terraform 将使用剩余的 provider阻止配置提供程序以运行销毁操作,之后您可以最终删除 provider块也。

关于terraform - 如何在 terraform 中回滚到以前的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57821319/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com