假设我已经使用terraform来构建我的基础架构,并且出于某种原因删除了我的tfstate。这意味着我已经在tf文件中定义了我的资源,我只需要重新导入所有内容。导入tf文件中定义的所有资源
这是否必须是手动过程?
比如我这是怎么导入EC2实例:
terraform import aws_instance.web i-123456
如果我必须做的,对于每一个资源,多数民众赞成相当痛苦的(还不如删除一切,重新开始)。
如果我已经有我的tf文件有一种方法可以导入所有已定义的资源?例如,我需要实例ID才能导入该实例。 terraform import命令是否可以读取我的tf文件并查找映射到“aws_instance.web”的资源?
为了做到这一点,terraform需要将aws实例映射到tf文件中的资源 - 这当然是tfstate的目的。但terraform是否也有一种方法来标记资源与他们的资源映射?所以我可以对tf文件进行导入,terraform只是动态读取tf文件,并通过唯一标签查找与tf资源相对应的物理资源?
如果您定义了两个完全相同的资源,那将如何工作? –
你是什么意思?就像我有两个不同的tf文件定义了一个同名的资源一样?对不起仍然把我的头包裹在terraform中,也许我在这里错过了一些东西? – red888
是的,有点。如果您使用完全相同的参数定义了两个EC2实例(例如),Terraform如何知道哪个实例不存储映射到实例ID? –