我是Terraform的新手,我想最终拥有一个Terraform模板来生成我的生产资源,这样我就可以轻松部署到多个区域并进行灾难恢复。如果我的AWS上的资源(EC2,S3,VPC等)已经部署,我该怎么做?
答案 0 :(得分:2)
您可以使用terraform import
功能。以下是文档的链接:https://www.terraform.io/docs/import/index.html
然而,它无法为您生成配置。您必须构建配置并导入资源状态。
Terraform导入的当前实现只能将资源导入该状态。它不会生成配置。 Terraform的未来版本也将生成配置。
您可以逐步进行,逐个开始编写资源配置。
例如:
成功导入资源后。您可以使用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
答案 1 :(得分:0)
我认为在这种情况下你应该尝试考虑“Terraforming”。它将以terraform风格导出您当前的aws基础设施。
您也可以考虑使用terraform生产就绪模块的分段堆栈,您可以按照自己的方式使用它。
答案 2 :(得分:0)
Google有一个名为terraformer的开源工具,用于将现有的AWS堆栈反向地形化为tf
和tfstate
文件。
它们显然还支持GCP,K8,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