首页 > 解决方案 > teamcity 代理未发现 Terraform 可执行文件

问题描述

我正在编写一个 teamcity 管道,我在其中使用 terraform 来启动一些 AWS 实例。我的管道使用 docker 来一一调用所有步骤

但是,terraform init 不断失败并出现 terraform: Command not found 错误

[11:05:00][Step 2/6] Initialising terraform
[11:05:00][Step 2/6] terraform init
[11:05:00][Step 2/6] Makefile:41: recipe for target 'terraformApply' failed
[11:05:00][Step 2/6] make: terraform: Command not found

这是我的 Makefile 的 terraformApply 片段

    @echo Download terraform
    # ${CURDIR}
    wget https://releases.hashicorp.com/terraform/0.12.20/terraform_0.12.20_linux_amd64.zip
    unzip -o terraform_0.12.20_linux_amd64.zip
    @echo Terraform downloaded
    # @echo Current Directory
    # ${CURDIR}
    sleep 60
    @echo *
    @echo Initialising terraform
    terraform init
    ## sudo terraform/terraform plan
    @echo Terraform initialised
    TF_VAR_AWS_ACCESS_KEY="****" TF_VAR_AWS_SECRET_KEY="****" terraform apply -auto-approve
    @echo Terraform setup done

我的管道在 linux 代理上运行。

我直接在 linux 机器上运行了这个 Makefile,效果很好。然而,在 teamcity 管道上,它找不到提取的 terraform。此外,echo *在 Makefile 中用于列出目录中存在的所有文件,我确实看到 terraform 存在于同一路径中。

任何帮助将不胜感激。

标签: dockermakefileteamcityterraform

解决方案


默认情况下,基于 Linux 的系统不会在当前工作目录中搜索二进制文件。提取后terraform,您需要将其称为./terraform init.


推荐阅读