首页 > 解决方案 > 从远程文件访问 terraform 变量

问题描述

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

我读过input variables但仍然无法实现我正在寻找的东西。我的情况是从某个远程文件中获取变量的值。

我尝试了类似下面的东西

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

但这给出了错误的说法no such file or directory

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

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

标签: amazon-web-servicesamazon-s3terraform

解决方案


很难下载并将文件名传递给 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

推荐阅读