9

有没有办法从现有的基础设施创建 terraform 状态文件。例如,AWS 账户附带一些已经到位的服务(例如:默认 VPC)。

但是 terraform 似乎只知道它创建的资源。所以,

  1. 将现有 AWS 基础设施迁移到 Terraform 代码的最佳方法是什么
  2. 是否可以手动添加资源并手动修改状态文件(不良影响?)

更新

Terraform0.7.0支持导入单个资源。

4

2 回答 2

5

对于相对较小的事情,我在手动修改状态文件以添加存根资源方面取得了一些成功,然后我在顶部继续使用 Terraform(特别是使用预先存在的 VPC 和子网,然后使用 Terraform 应用安全组等)。

对于更复杂的事情,有一个名为的非官方工具terraforming,我听说它非常擅长生成 Terraform 状态文件,而且还可以与预先存在的状态文件合并。我没有尝试过,但它可能值得研究。

更新

Terraform 0.7开始,Terraform 现在对使用import命令行工具导入预先存在的资源具有一流的支持。

从 0.7.4 开始,这会将预先存在的资源导入状态文件,但不会为资源生成任何配置。当然,如果然后尝试一个plan(或一个apply)Terraform 将表明它想要销毁这个孤立的资源。在运行之前,apply您需要创建配置以匹配资源,然后任何未来plan的 s(和applys)应该显示对资源没有更改并愉快地保留导入的资源。

于 2016-01-22T23:09:25.163 回答
1

使用 Terraforming https://github.com/dtan4/terraforming,迄今为止它可以生成大多数 *.tfstate 和 *.tf 文件,除了 vpc 对等。

于 2016-06-14T16:54:39.783 回答