这就是我使用 Jenkins 运行 AWS terraform plan 时得到的结果。下面是我们正在使用的代码
错误:错误:无法删除旧的地形 是一个目录
代码: sh '''设置+x 卷曲 -L 'https://releases.hashicorp.com/terraform/0.11.10/terraform_0.11.10_linux_amd64.zip' --输出 terraform.zip 解压-o terraform.zip echo“使用$(terraform -version)来自:$(which terraform)” ''' sh "terraform init -backend-config='bucket=${bucketName}'"
詹金斯错误:
+ set +x
after terraform download
Archive: terraform.zip
error: cannot delete old terraform
Is a directory
[Pipeline] End of Pipeline
ERROR: script returned exit code 50
Finished: FAILURE
请提出更好的解决方案。
Unzip 拒绝覆盖上次运行时似乎仍位于工作区中的
terraform/
目录。
在
sh "rm -rf terraform/"
(或 unzip
)之前运行 cleanWs()
您很可能有一个名为“terraform”的目录,其中包含 terraform 文件。然后它与 ZIP 存档中包含的文件“terraform”发生冲突。这就是解压失败的原因。
unzip -f terraform.zip
使用 -f 代替 -o
-f freshen existing files, create none i.e unzip to replace the new files only
-n never overwrite existing files
-q quiet mode (-qq => quieter)
-o overwrite files WITHOUT prompting