如何从Terraform Cloud获取errored.tfstate文件?
如何获取Circle CI中Terraform生成的errored.tfstate文件
当Circle CI执行Terraform部署出现状态保存失败错误时,Terraform会在当前工作目录生成errored.tfstate文件,但由于CI环境在任务结束后会被销毁,需要通过以下方式获取该文件:
在Circle CI配置中添加工件存储步骤
在你的.circleci/config.yml的Terraform执行任务里,添加store_artifacts步骤,确保即使Terraform命令失败,也能保存该文件:jobs: terraform-deploy: steps: - checkout # 其他Terraform初始化步骤 - run: terraform apply - store_artifacts: path: errored.tfstate destination: terraform-state when: always这里的
when: always保证无论前面的terraform apply是否失败,都会执行存储操作。从Circle CI工件库下载文件
任务执行完成后,进入对应任务的详情页面,找到「Artifacts」标签页,就能看到上传的errored.tfstate文件,点击即可下载。通过SSH调试临时获取
如果需要实时查看或获取,可以在任务中添加失败后的调试步骤:- run: name: 失败后进入调试 command: sleep 3600 when: on_fail当任务失败后,点击页面上的「Rerun with SSH」,通过SSH连接到CI运行环境,直接在工作目录中找到并下载
errored.tfstate文件。
注意:Terraform本身没有内置的远程同步errored.tfstate的功能,必须依赖CI环境的文件存储机制来留存该文件。
内容的提问来源于stack exchange,提问作者Dommondke
相关产品推荐
相关产品推荐

