假設我已經使用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? –