Terraform配置緩存
Terraform配置緩存
一 背景
需要手動或者terraform init一次下載, 然后緩存。后續直接使用緩存。
本次實踐使用的是Linux/Mac 系統,如果是windows系統有兩點不同的配置。
Terraform使用預填充插件(防止通過init命令從web下載)。
配置文件使用與 .tf 文件相同的 HCL 語法,但具有不同的屬性和塊。以下示例說明了一般語法;有關每個設置的含義的信息,請參閱以下部分:
credentials :配置用于 Terraform Cloud 或 Terraform Enterprise 的憑據。有關詳細信息,請參閱下面的憑據Credentials。
credentials_helper:為 Terraform Cloud 或 Terraform Enterprise 配置用于存儲和檢索憑據的外部幫助程序。有關詳細信息,請參閱下面的憑據助手。
disable_checkpoint :設置為 true 時,禁用需要聯系 HashiCorp 提供的網絡服務的升級和安全公告檢查。
disable_checkpoint_signature :當設置為 true 時,允許上述升級和安全公告檢查,但禁止使用匿名 id 來刪除重復警告消息。
plugin_cache_dir :啟用插件緩存并以字符串形式指定插件緩存目錄的位置。
provider_installation :自定義 terraform init 在安裝提供程序插件時使用的安裝方法。有關詳細信息,請參閱下面的提供程序安裝。
二 配置
# 創建緩存目錄 mkdir -pv $HOME/.terraform.d/terraform-plugin-cache # 寫入配置文件 cat > $HOME/.terraform.d/.terraformrc < 三 初始化 terraform init進行聯網下載,或者可以進入到registry.terraform.io 手動通過github下載 可以看到在緩存目錄下已經成功緩存 四 離線測試 4.1 制定plugin-dir terraform init --plugin-dir $HOME/.terraform.d/terraform-plugin-cache/ 4.2 定義Terraform插件使用本地mirror 在.terraformrc 中添加filesystem_mirror provider_installation { filesystem_mirror { path = "/Users/xuel/.terraform.d/terraform-plugin-cache" include = ["registry.terraform.io/*/*"] } } $ terraform providers mirror /Users/larry/Software/terraform/plugins terraform init -plugin-dir=/Users/larry/Software/terraform/plugins 4.3 兩者的練習與區別 前兩個是相互聯系的,因為它們都共享相同的底層機制:“文件系統鏡像”插件安裝方法。 使用terraform init -plugin-dir使Terraform實際上構造了一個one-offprovider_installation塊,其中只包含一個引用給定目錄的filesystem_mirror塊。它允許您僅在一次安裝操作中獲得這種效果,而不是在中心位置為將來的所有命令配置它。具體而言,如果運行terraform init -plugin-dir=/example,則在功能上等同于以下CLI配置: provider_installation { filesystem_mirror { path = "/Users/xuel/.terraform.d/terraform-plugin-cache" include = ["registry.terraform.io/*/*"] } } 插件緩存目錄不同,因為Terraform仍將訪問配置的安裝方法(默認情況下,每個提供商的原始注冊表),但如果插件包文件已經在緩存中,則將跳過下載插件包文件(該文件實際上包含插件代碼,而不是關于發布的元數據)。同樣,它會將下載的任何新插件包保存到緩存中,以備將來使用。 因此,這不會阻止Terraform嘗試通過網絡訪問原始注冊表來安裝任何新插件。這只是一個避免重復使用re-downloading相同包的優化。 注意事項 注意環境變量TF_CLI_CONFIG_FILE,全局生效添加之.bashrc中。 到此就完成了terraform離線本地源的配置了, 除了這種方式外其實也可以基于terraform開放的HTTP API協議,使用Python Flask寫一個registry server。 如果想要自己手動下載,可以到這個網址:https://releases.hashicorp.com/ 參考鏈接 https://developer.aliyun.com/article/897960 https://www.5axxw.com/questions/content/8jxzkx https://www.terraform.io/cli/config/config-file Git
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。