我正在掌控Terraform,主要用于部署Azure资源。
我的问题是,假设我使用Azure来创建资源组,以及一些资源,例如具有某些设置的Web应用程序。现在,如果我更改tf文件中的设置,例如应用服务计划或其他什么,在我下次运行terraform时,它会检查设置并修复文件中的内容吗?
E.g。一个app服务部署了一个计划(比如说X),计划被改为Y,也许是未经授权的改变,现在当tf文件再次运行时,文件指定带有X的app服务,Terraform会将应用服务更新为计划X?
谢谢!
答案 0 :(得分:0)
是的,可能。 Terraform会记住您的环境状态,因此如果您手动更改某些内容,则会想要将其更改回来,或者如果发现资源丢失则重新创建资源。
答案 1 :(得分:0)
Terraform是基础架构,作为不可变基础架构的代码。
因此,如果您更改代码中的内容,terraform将比较更改并向您显示差异。
terraform资源状态保存在*.tfstate
文件中,您需要保证其安全并保持更新。这就是我们使用aws s3后端并启用版本控制以始终保存tfstate
文件的原因。你应该在Azure中做同样的事情。
您可以使用terraform plan
来干预代码。有了这个,terraform将在terraform apply
更改之前报告存在的tfstate文件与状态的差异。
如果有任何设置偏差,您还可以运行terraform refresh
以获取最新的资源状态。