我正在将一些手动配置的基础结构迁移到terraform。
目前我正在.tf
文件中手动定义地形资源,并使用terraform import
导入远程状态。然后我多次运行terraform plan
,每次都修改本地tf
文件,直到匹配现有的infstructure。
如何通过将远程状态直接下载到.tf
资源文件中来加快此过程?
从.tf
文件中写入的配置到状态快照中间接表示的真实基础设施的映射是有损耗的。
典型的Terraform配置具有从另一个资源的属性派生的一个资源参数,使用count
或for_each
系统地声明多个类似的对象,并且可能使用Terraform模块来分解问题并重用某些组件。
所有这些上下文在映射到真实远程对象时都会丢失,因此无法恢复它并生成可供使用的惯用.tf
文件。因此,您总是需要对配置进行一些修改,以便生成有用的Terraform配置。
在牢记这一警告的同时,可以通过运行terraform show
命令来查看使用terraform import
添加的对象的设置。它的输出是由人类而不是机器读取的,但它确实使用Terraform语言(类似于格式(来呈现信息,因此它产生的内容可能是Terraform配置的起点,需要注意的是,它并不总是完全有效的,通常至少需要一些调整,才能被terraform plan
接受为有效的,并对正在进行的使用有用。