【问题标题】:access terraform variable from remote file从远程文件访问 terraform 变量
【发布时间】:2019-11-17 23:22:08
【问题描述】:

我正在尝试从远程位置(文件等)访问变量的值

我阅读了有关input variables 的信息,但仍然无法实现我想要的。 我的情况是从某个远程文件中获取变量的值。

我尝试了类似下面的方法

terraform apply -var-file="https://s3-ap-northeast-1.amazonaws.com/..."

但这给出了错误提示no such file or directory

有没有办法在运行时从远程位置加载值?

编辑: 我正在使用 mysql 提供程序来创建数据库和用户。为了设置用户密码,我想使用一些保存密码的远程位置(可能是 s3 文件)。
PS:我看到有可用于密码的密钥库,但我想检查是否有其他方法可以实现这一点?

【问题讨论】:

  • 如果您使用的是 S3,为什么不直接使用 SSM 参数存储或秘密管理器呢?这些实际上是为存储数据库密码之类的东西而设计的,而不仅仅是作为 S3 中的一个 blob。
  • 我认为文件必须是本地的,terraform.io/docs/configuration/…
  • @Kthanvi 你看过我的回答了吗?
  • @Adiii 是的!谢谢你,它有帮助。但显然在我的情况下,我们无法从本地系统连接到数据库,所以我正在寻找一种不同的方式,

标签: amazon-web-services amazon-s3 terraform


【解决方案1】:

很难下载并将文件名传递给 terraform apply,但是您可以使用 bash 来完成,这就是我们在远程服务器中所做的。

#!/bin/bash
varfile_name=terraformvar.tfvars
varfile=$(aws s3 cp s3://bucket-********/web-app/terraform/terraform_vars.tfvars ./$varfile_name)
if [ $? -eq 0 ]; then
    terraform apply -var-file=$varfile_name
else
    echo "failed to download file from s3"
fi

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 2016-10-30
    • 2020-11-12
    • 2014-06-24
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多