如何解决Terraform local-exec 如何在 Concourse 上工作?
我使用了“null_resource”并将aws cli传递给“local-exec”来更新stepfunction:
resource "null_resource" "enable_step_function_xray" {
triggers = {
state_machine_arn = xxxxxxx
}
provisioner "local-exec" {
command = "aws stepfunctions update-state-machine --state-machine-arn ${self.triggers.state_machine_arn} --tracing-configuration enabled=true"
}
}
当我通过本地 Terraform 进行测试时,这很好用,我的问题是如果我在 Concourse 上应用 Terraform 是否会起作用?
解决方法
这完全取决于您是否将 Concourse 作业配置为使用安装了 aws
cli 工具的容器映像。如果安装了 AWS CLI 工具并且在路径中,那么 local-exec
应该会成功。如果没有,那么它显然会失败。
我的假设是,在您的本地机器上,您已经设置了所需的凭据。因此,如果您只是在 Concourse CI 上尝试,它会因身份验证错误而失败。
在 Concourse 中进行设置 -
- AWS 控制台 - 创建一个仅具有编程访问权限和相关权限的新 IAM 用户
cicd
。出于测试目的,您可以使用AdministratorAcess
政策,但请确保稍后将其设为 least-privileged。 - AWS 控制台 - 为
cicd
用户创建 AWS 安全凭证(AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY)(将它们保存在安全的地方) - Concourse CI - 创建 secrets
AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
- Concourse CI - 添加
((AWS_ACCESS_KEY_ID))
和((AWS_SECRET_ACCESS_KEY))
environment variables to your Concourse CI task
我相信有很多关于这个主题的教程,但上面的步骤可能会出现在这些教程中的大多数中。 Concourse CI 现在应该能够在您的 AWS 账户上应用更改。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。