首页 > 解决方案 > 如何在 Hashicorp Terraform 中配置环境变量

问题描述

我对 Terraform 很陌生,尽管我已经浏览了 Hashicorp 网站上提供的所有教学模块。

目前,我正在努力理解如何设置环境变量。access_key = "${var.access_key}"我知道如何在 main.tf 配置() 是如何设置环境变量,因此我不必将访问密钥保存到文件中。

有谁知道如何最好地做到这一点?

标签: terraformterraform-provider-azure

解决方案


Terraform 可以为 AWS 推断以下环境变量

export AWS_ACCESS_KEY_ID="anaccesskey"
export AWS_SECRET_ACCESS_KEY="asecretkey"

参考:https ://www.terraform.io/docs/providers/aws/#environment-variables

但我建议尝试AWS Profile. 您可以将凭据添加到~/.aws/credentials文件中,例如

[myprofile]
aws_access_key_id     = anaccesskey
aws_secret_access_key = asecretkey

然后你可以设置环境变量export AWS_PROFILE=myprofile。现在,如果你从这个 shell 运行 terraform,它应该会选择myprofile.

此外,你可以让你AWS Provider的代码如下:

provider "aws" {
  profile = "myprofile"
  region  = "${var.region}"
}

以我的经验,与 AWS 交互profile比在每个 shell 上设置环境变量更容易且更好。

你可以在这里参考一个例子https://github.com/pradeepbhadani/tf-examples/blob/master/ex2/provider.tf

希望这可以帮助。


推荐阅读