Terraform配置緩存

      網友投稿 1181 2022-05-30

      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仍將訪問配置的安裝方法(默認情況下,每個提供商的原始注冊表),但如果插件包文件已經在緩存中,則將跳過下載插件包文件(該文件實際上包含插件代碼,而不是關于發布的元數據)。同樣,它會將下載的任何新插件包保存到緩存中,以備將來使用。

      因此,這不會阻止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小時內刪除侵權內容。

      上一篇:【Java并發編程實戰】02線程安全性
      下一篇:【愚公系列】2022年05月 .NET架構班 044-分布式中間件 .Net Core下使用Redis
      相關文章
      亚洲a无码综合a国产av中文| 国产亚洲视频在线观看网址| 中文字幕亚洲激情| 国产AV无码专区亚洲AV琪琪| 色欲色欲天天天www亚洲伊| 一本色道久久88亚洲精品综合 | 亚洲精品无码你懂的网站| 精品国产日韩亚洲一区在线| 亚洲精品国产精品| 亚洲GV天堂GV无码男同 | 亚洲人JIZZ日本人| 亚洲色偷偷偷鲁综合| 亚洲精品乱码久久久久久| 亚洲人成无码网站| 亚洲成A人片777777| 亚洲激情中文字幕| 久久久亚洲AV波多野结衣| 亚洲综合图片小说区热久久| 亚洲图片中文字幕| 国产精品亚洲片夜色在线| 日本亚洲色大成网站www久久| 中文字幕亚洲码在线| 亚洲精品9999久久久久无码| 18禁亚洲深夜福利人口| 亚洲精品国产高清嫩草影院| 成人亚洲性情网站WWW在线观看| 亚洲中文字幕无码中文字在线| 亚洲成色在线综合网站| 亚洲国产天堂在线观看| 亚洲大香人伊一本线| 亚洲综合一区无码精品| 免费亚洲视频在线观看| 久久亚洲AV无码西西人体| 亚洲AV无码久久精品成人| 久久久久久久亚洲Av无码 | 中文字幕第13亚洲另类| 亚洲国产AV无码专区亚洲AV | 一本久久综合亚洲鲁鲁五月天| 亚洲性日韩精品国产一区二区| 亚洲成在人线av| 亚洲国产成人精品电影|