Terraform 的大致概述(确保不会误操作破坏生产环境的知识)

对于初次使用Terraform的人来说,这是一个非常简单的概述。为了不意外地删除生产环境的资源,我写了一些我认为值得了解的最基本事项。

※Terraform 还支持除了AWS之外的其他选项。

文字太多了,简单总结一下就是

terraform plan を確認後、 terraform apply でAWSリソースの反映を行います
AWS リソースの実態ではなく、ステートファイル (terraform.tfstate) の内容の方が重要です
職人の手により追加されたAWS リソースを取り込む際に、うっかり terraform apply するとAWS リソースがニフラムします

大致了解Terraform的运作方式。

使用 Terraform 进行环境构建的步骤是

    1. 写terraform文件

 

    1. 通过terraform plan确认更改内容

 

    1. 推荐仔细检查是否有奇怪的差异

 

    使用terraform apply来实时应用更改内容

是。

样本

image

以这种状况,执行 terraform plan ,

image

在此之前(即时尚未更新),执行 terraform apply,

image

and that concludes it.

请参考官方文档了解具体的描述方法和其他命令。
https://www.terraform.io/docs/index.html

点数

terraform apply 将在 AWS 上更改资源,以确保 Terraform 文件 (*.tf) 的定义和状态文件 (*.tfstate) 的内容之间没有差异。

谨慎状态需要注意

在AWS上存在资源,但在状态文件中没有记载。

这个状态是S3在上面的样本图中。

由于未被Terraform管理,无法通过Terraform进行更改。虽然没有特别需要注意的事项,但是在Terraform的定义和AWS资源的实际情况发生冲突时,可能导致terraform apply失败。

例如,在Terraform中定义了一个与已经存在的S3存储桶具有相同名称的S3存储桶的情况下等。

在AWS上存在资源,也在状态文件中进行了记录,但在Terraform文件中未定义。

这个示例图中的RDS处于这种状态。
(如果使用Terraform删除AWS资源时会发生这种情况)

没有问题出现在通过删除这个状态的意图上。然而,在用工匠熟练的技术(AWS管理控制台)添加AWS资源之后,当后来使用Terraform来管理这个状态时,这种状态会暂时发生。

将已存在的 AWS 资源导入 Terraform 的步骤。

在Terraform中复制工匠的熟练技能需要一些工作。

    1. 通过terraform import命令,根据AWS资源的实际情况生成状态文件。

通过terraform state mv等命令来调整相关资源的定义代码的布局。

编写Terraform代码以确保terraform plan没有差异。

在这个过程中,如果不小心执行 terraform apply,那么本应该被 Terraform 吸纳的 AWS 资源会被删除。被吸纳的很可能是生产环境的资源,那将是一件十分严重的事情。

最后

非常重要的事情我再次強調一下,那就是國家檔案的內容非常重要。
因此,LiB 在 S3 上設置了版本控制以管理國家檔案。

虽然没找到 Terraform 的日历,可能不太受欢迎吧…

广告
将在 10 秒后关闭
bannerAds