首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Terraform初始化问题:命令行参数太多

Terraform初始化问题:命令行参数太多
EN

Stack Overflow用户
提问于 2021-07-07 15:56:30
回答 2查看 1.4K关注 0票数 1

我想做的是:我已经设置了一个自托管的gitlab实例,并且我正在使用GitLab CI自动执行terraform过程,为此我必须设置一个terraform后端。我遵循了官方文档中的步骤,但不幸的是,我在运行管道时遇到了错误。这段代码可以在我的.gitlab-ci.yml文件中找到,所以它可以在我的GitLab运行器上运行,该运行器使用基于python:3.9-buster (Debian)的docker镜像。

这是有问题的代码,当然我编辑掉了IP地址:

代码语言:javascript
复制
- terraform init \ 
        -backend-config="address=http://ipaddress//api/v4/projects/3/terraform/state/terraform-state/" \ 
        -backend-config="lock_address=http://ipaddress//api/v4/projects/3/terraform/state/terraform-state/lock" \ 
        -backend-config="unlock_address=http://ipaddress//api/v4/projects/3/terraform/state/terraform-state/lock" \ 
        -backend-config="username=root" \ 
        -backend-config="password=$ACCESSTOKEN" \ 
        -backend-config="lock_method=POST" \ 
        -backend-config="unlock_method=DELETE" \ 
        -backend-config="retry_wait_min=5"

不幸的是,当上面的命令被执行时,我得到了这个错误:

代码语言:javascript
复制
Too many command line arguments. Did you mean to use -chdir?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-07 16:47:25

为了防止任何人被类似的问题卡住,碰巧发现了这篇文章,将我的脚本更改为这种格式解决了问题:

代码语言:javascript
复制
  - export TF_ADDRESS=http://ipaddress//api/v4/projects/3/terraform/state/terraform-state/
  - export TF_HTTP_ADDRESS=${TF_ADDRESS}
  - export TF_HTTP_LOCK_ADDRESS=${TF_ADDRESS}/lock
  - export TF_HTTP_LOCK_METHOD=POST
  - export TF_HTTP_UNLOCK_ADDRESS=${TF_ADDRESS}/lock
  - export TF_HTTP_UNLOCK_METHOD=DELETE
  - export TF_HTTP_USERNAME=root
  - export TF_HTTP_PASSWORD=$ACCESSTOKEN
  - export TF_HTTP_RETRY_WAIT_MIN=5
  - terraform init -reconfigure
票数 1
EN

Stack Overflow用户

发布于 2021-09-16 21:22:12

Block Scalar also works

代码语言:javascript
复制
- >- 
      terraform init
      -backend-config="address=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${TF_STATE_NAME}"
      -backend-config="lock_address=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${TF_STATE_NAME}/lock"
      -backend-config="unlock_address=${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${TF_STATE_NAME}/lock"
      -backend-config="username=${USERNAME}"
      -backend-config="password=${TF_BOT_GLPAT}"
      -backend-config="lock_method=POST"
      -backend-config="unlock_method=DELETE"
      -backend-config="retry_wait_min=5"
      -backend-config="skip_cert_verification=true"  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68282110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档