Terraform Init 加速方案配置
更新時間:
當您遇到由于網絡延遲等原因造成的 terraform init 超時,導致無法正常下載 Provider 等情況時,可通過配置阿里云鏡像站解決。
問題描述
阿里云 Provider 提供兩個下載源:source = hashicorp/alicloud
和source = aliyun/alicloud
。國內用戶在下載 Provider 時可能會遇到下載緩慢甚至下載失敗的問題:
- Finding aliyun/alicloud versions matching "1.191.0"...
?
│ Error: Failed to query available provider packages
│
│ Could not retrieve the list of available versions for provider aliyun/alicloud: could not query provider registry for registry.terraform.io/aliyun/alicloud: the request
│ failed after 2 attempts, please try again later: Get "https://registry.terraform.io/v1/providers/aliyun/alicloud/versions": net/http: request canceled (Client.Timeout
│ exceeded while awaiting headers)
?
- Finding hashicorp/alicloud versions matching "1.191.0"...
?
│ Error: Failed to query available provider packages
│
│ Could not retrieve the list of available versions for provider hashicorp/alicloud: could not query provider registry for registry.terraform.io/hashicorp/alicloud: the
│ request failed after 2 attempts, please try again later: Get "https://registry.terraform.io/v1/providers/hashicorp/alicloud/versions": context deadline exceeded
│ (Client.Timeout exceeded while awaiting headers)
?
解決方案
Terraform CLI 自 0.13.2 版本起提供了設置網絡鏡像的功能。為解決以上問題,阿里云 Provider 提供了鏡像服務以幫助國內用戶快速下載。
配置方案
創建.terraformrc
或terraform.rc
配置文件,文件位置取決于主機的操作系統。
在 Windows 環境上,文件必須命名為
terraform.rc
,并放置在相關用戶的%APPDATA%
目錄中。這個目錄的物理位置取決于Windows 版本和系統配置;在 PowerShell 中使用$env:APPDATA
可以找到其在系統上的位置。在所有其他系統上,必須將該文件命名為
.terraformrc
,并直接放在相關用戶的主目錄中。
也可以使用TF_CLI_CONFIG_FILE
環境變量指定 Terraform CLI 配置文件的位置,任何此類文件都應遵循命名模式*.tfrc
。
以 macOS 為例,在home目錄下創建.terraformrc
文件,內容如下:
provider_installation {
network_mirror {
url = "https://mirrors.aliyun.com/terraform/"
// 限制只有阿里云相關 Provider 從國內鏡像源下載
include = ["registry.terraform.io/aliyun/alicloud",
"registry.terraform.io/hashicorp/alicloud",
]
}
direct {
// 聲明除了阿里云相關Provider, 其它Provider保持原有的下載鏈路
exclude = ["registry.terraform.io/aliyun/alicloud",
"registry.terraform.io/hashicorp/alicloud",
]
}
}
文檔內容是否對您有幫助?