GitLab Terraform模块注册发现请求改HTTP的配置方法咨询
解决Terraform访问GitLab模块注册库时切换为HTTP的方法
1. 通过Terraform配置指定注册库使用HTTP协议
在你的Terraform配置文件(通常是main.tf)的terraform块中,添加注册库的协议配置,强制针对目标GitLab实例使用HTTP:
terraform { registry { hostname = "eucceisgtp01.pvcp.intra" protocol = "http" } # 其他配置(如required_providers等)... }
该配置会让Terraform在请求该GitLab实例的模块注册库发现文档(.well-known/terraform.json)时自动使用HTTP协议,无需修改模块源地址。
2. 修改模块源地址为HTTP格式
如果上述注册库配置不生效,或者你使用的Terraform版本低于0.14,可以直接在模块引用中指定HTTP协议的源地址:
module "azure_vm" { # 替换原有的HTTPS源为HTTP格式 source = "http://eucceisgtp01.pvcp.intra/your-group/your-module/azure_vm?ref=v1.0.0" }
如果是通过Git协议引用模块,同样可以改成HTTP:
module "azure_vm" { source = "git::http://eucceisgtp01.pvcp.intra/your-group/your-module.git//azure_vm?ref=v1.0.0" }
3. 使用环境变量临时强制HTTP协议
适合临时测试场景,无需修改配置文件:
- Linux/macOS终端:
# 若GitLab实例无有效HTTPS证书,可跳过验证 export TF_INSECURE_SKIP_VERIFY=true # 强制Terraform注册库使用HTTP协议 export TERRAFORM_REGISTRY_PROTOCOL=http
- Windows PowerShell:
$env:TF_INSECURE_SKIP_VERIFY = "true" $env:TERRAFORM_REGISTRY_PROTOCOL = "http"
4. 修改GitLab服务器端配置(需管理员权限)
如果你的GitLab实例本身未配置HTTPS,可修改GitLab配置强制Terraform注册库使用HTTP:
- 编辑GitLab主配置文件(默认路径:
/etc/gitlab/gitlab.rb) - 添加或更新以下配置项:
# 确保Terraform注册库处于启用状态 gitlab_rails['terraform_registry_enabled'] = true # 指定Terraform注册库的HTTP访问地址 gitlab_rails['terraform_registry_url'] = "http://eucceisgtp01.pvcp.intra"
- 重新配置并重启GitLab服务:
sudo gitlab-ctl reconfigure sudo gitlab-ctl restart
内容的提问来源于stack exchange,提问作者maniche
相关产品推荐
相关产品推荐

