我想先对云资源进行版本控制,然后再使用它通过Terraform进行应用。无论如何,我可以运行一个命令并存储云的当前状态吗?
我尝试使用Terraform的import
command:
地形导入ADR ID
但是,识别所有资源并导入它们需要很长时间。
我尝试过terraforming
,但这也需要导入一种资源类型:
terraforming s3
是否有任何工具可以帮助导入所有现有资源?
答案 0 :(得分:2)
尽管从技术上讲这不能解决您的问题,但我强烈建议不要尝试以一种单一方式将整个现有AWS账户导入Terraform,
如果您查看任何Terraform best practices,那么很多事情都会归因于使事物的爆炸半径最小化,因此只有有意义的事物才能彼此同时改变同时应用。 Charity Majors撰写了good blog post内容,涉及的内容以及情况并非如此。
任何会大量导入事物的工具(例如terraforming
)都只会将所有内容转储到单个状态文件中。如前所述,这是个坏主意。
虽然这听起来很麻烦,但我建议您更仔细,更有条理地迁移到Terraform。通常,我可能会说只有新的基础架构才应使用Terraform,并利用Terraform的数据源来查找现有的内容,例如已经存在的VPC ID。
一旦您习惯使用Terraform并以特定方式构建基础结构代码和状态文件,便可以开始考虑如何将现有基础结构代码映射到Terraform状态文件等,并手动开始importing必要的具体资源。
通过这种方式做事还可以使您更好地利用Terraform并更好地了解其局限性和优势,同时还可以确定团队和/或CI如何一起工作(例如,远程状态和状态文件锁定和编排)不会互相绊倒或造成潜在的严重状态问题。
答案 1 :(得分:1)
我正在使用terraformer导入我现有的AWS基础架构。它比terraforming
更加灵活,并且答案中没有提到任何问题。