如何删除gitlab中的地形资源



我通过gitlab创建资源,但无法删除它们。一开始,我将计划输出到工件,以便在apply中应用它。然后创建资源,创建后我想删除它们。但是删除它们是不起作用的,不可能以与计划相同的方式输出它们,如果我只是像在终端中一样键入destroy,则表明作业正在成功运行,但0个资源被删除。My.gitlab-ci.yaml就像这个

stages:
- validate
- plan
- apply
- destroy
before_script:
- rm -rf .terraform
- export AWS_ACCESS_KEY_ID
- export AWS_SECRET_ACCESS_KEY  
- terraform init
validate:
stage: validate
script:    
- terraform validate
tags:
- shell-runner
plan:
stage: plan
script:
- terraform plan -out "planfile"
dependencies:
- validate
artifacts:
paths:      
- "planfile"      
tags:
- shell-runner

apply:
stage: apply
script:
- terraform apply -input=false -auto-approve   
dependencies:
- plan
tags:
- shell-runner
when: manual
destroy:
stage: destroy
script:
- terraform destroy -state="planfile" -auto-approve
tags:
- shell-runner
when: manual

您混淆了Terraform状态和Terraform计划。

Terraform state是一个集中的文件,用于存储有关所有基础设施的信息。

Terraform计划是一个短暂的文件,只有计划的更改。

请正确设置Terraform状态位置,销毁时不要将计划文件设置为状态文件。除了local之外,您需要任何后端类型。

我发现其中一个解决方案+可以通过s3 bucket完成https://docs.gitlab.com/ee/user/infrastructure/iac/terraform_state.html

相关内容

  • 没有找到相关文章

最新更新