前面練習過程中,我們寫了不少的 Terraform 組態檔,但都同樣是要建立網頁伺服器的,我想應該有辦法製作可重複使用的組態,減少一些重工的行為。
接下來要認識的 Terraform 模組 (Modules) 就可以解決這些問題。
模組 (Modules) 是在一個資料夾下的多個組態檔組合,可以被多次的呼叫,以達到重複使用組態資源的目的。
所有的 Terraform 組態都是以模組的型式在運作的,平常執行 terraform 指令所在的工作資料夾,叫做「根模組」(root module)。
如同其他程式語言一樣,模組化帶來很多的好處:
要呼叫模組時,可以在你的組態檔裡使用模組區塊 (module block) 來呼叫模組。Terraform 在遇到模組區塊時會自行載入該模組的組態檔。
module "name" {
source = "module_path"
}
模組區塊一定要有的引數 (argument) 是 source
,填入的值是要使用的模組路徑。
模組的來源可以是在本地的檔案,也可以是遠端的資源。
後續我們會試著使用遠端的資源,也會打造自己的模組。