Gitlab terraform在空目录中初始化
我试图让terraform在特定的根目录中执行terraform初始化,但不知何故管道无法识别它。我的gitlab-ci.yml文件的结构可能有问题吗?我已经尝试将所有内容移动到根目录,这很好,但是我希望在存储库中有一点文件夹结构,以便将来的开发人员更容易阅读Gitlab terraform在空目录中初始化,gitlab,continuous-integration,terraform,gitlab-ci,continuous-delivery,Gitlab,Continuous Integration,Terraform,Gitlab Ci,Continuous Delivery,我试图让terraform在特定的根目录中执行terraform初始化,但不知何故管道无法识别它。我的gitlab-ci.yml文件的结构可能有问题吗?我已经尝试将所有内容移动到根目录,这很好,但是我希望在存储库中有一点文件夹结构,以便将来的开发人员更容易阅读 default: tags: - aws image: name: hashicorp/terraform:light entrypoint: - '/usr/bin/env' - 'PATH=/us
default:
tags:
- aws
image:
name: hashicorp/terraform:light
entrypoint:
- '/usr/bin/env'
- 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
variables:
# If not using GitLab's HTTP backend, remove this line and specify TF_HTTP_* variables
TF_STATE_NAME: default
TF_CACHE_KEY: default
# If your terraform files are in a subdirectory, set TF_ROOT accordingly
TF_ROOT: ./src/envs/infrastruktur
before_script:
- rm -rf .terraform
- terraform --version
- export AWS_ACCESS_KEY_ID
- export AWS_ROLE_ARN
- export AWS_DEFAULT_REGION
- export AWS_ROLE_ARN
stages:
- init
- validate
- plan
- pre-apply
init:
stage: init
script:
- terraform init
在验证阶段之前一切都正常,但一旦管道进入计划阶段,它就会说找不到任何配置文件
validate:
stage: validate
script:
- terraform validate
plan:
stage: plan
script:
- terraform plan -out "planfile"
dependencies:
- validate
artifacts:
paths:
- planfile
apply:
stage: pre-apply
script:
- terraform pre-apply -input=false "planfile"
dependencies:
- plan
when: manual
您需要在每个作业中的配置文件夹中进行cd,并且在每个作业之后,您需要通过将terraform正在运行的
/src/envs/infrastructur
的内容传递到下一个作业。为了简洁起见,我省略了您管道的其余部分
before_script:
- rm -rf .terraform
- terraform --version
- cd $TF_ROOT
- export AWS_ACCESS_KEY_ID
- export AWS_ROLE_ARN
- export AWS_DEFAULT_REGION
- export AWS_ROLE_ARN
stages:
- init
- validate
- plan
- pre-apply
init:
stage: init
script:
- terraform init
artifacts:
paths:
- $TF_ROOT
validate:
stage: validate
script:
- terraform validate
artifacts:
paths:
- $TF_ROOT
plan:
stage: plan
script:
- terraform plan -out "planfile"
dependencies:
- validate
artifacts:
paths:
- planfile
- $TF_ROOT
我没有看到任何
terraforminit
在您的gitlab-ci中被执行。ymlI不得不缩短脚本以发布它。单元阶段是我包含工作目录的部分吗?它最初是脚本的一部分。如果你发布完整的管道点,我已经更新了帖子,这会更容易帮助你。