使用现有的生产资源进行Terraform配置

8

我是 Terraform 的新手,我希望最终能够拥有一个 Terraform 模板来管理我的生产资源,这样我就可以轻松地在多个区域进行部署和灾难恢复。但如果我的 AWS 资源(如 EC2、S3、VPC 等)已经部署了,我该怎么做呢?

3个回答

3
您可以使用terraform import功能来完成此操作。这是文档链接:https://www.terraform.io/docs/import/index.html 然而,它不能为您生成配置。您需要构建配置并导入资源的状态。

Terraform import的当前实现只能将资源导入状态。它不会生成配置。 Terraform的未来版本也将生成配置。

您可以逐步进行,一次为资源编写配置。
例如:
  1. 编写VPC配置。
  2. 导入VPC状态
  3. 编写EC2实例配置。
  4. 导入EC2状态
成功导入一个或多个资源后,可以使用terraform plan命令确保状态正确匹配。
请记住利用terraform模块(https://www.terraform.io/docs/modules/create.html)更好地组织代码,以便您可以在其他区域和环境中重复使用它们。
这是一篇介绍如何在多个区域使用terraform的文章:https://medium.com/@ctindel/multi-region-aws-app-deployments-with-terraform-modules-859c9ecb64f4

3

谷歌有一个名为terraformer的开源工具,可将现有的AWS堆栈转换为tftfstate文件。

他们还支持GCP(显然)、K8s、Openstack和其他平台。

AWS示例用法:

terraformer import aws --resources=vpc,subnet --connect=true --regions=eu-west-1 --profile=prod

terraformer import aws --resources=vpc,subnet --filter=aws_vpc=vpc_id1:vpc_id2:vpc_id3 --regions=eu-west-1

这还有效吗?这个工具还经过审查吗? - Mars2024
这个工具还能继续使用吗? - Mars2024
@小红书,正如项目自述文件中所述,它并不是谷歌的官方产品,但最近有一些提交。最好查看问题以了解其稳定性:https://github.com/GoogleCloudPlatform/terraformer/issues - Dylan Hogg

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接