是否有任何选项可用于处理 Terraform 中的 Openstack 提供程序凭据,类似于 AWS 提供程序中存在的凭据,例如环境变量。
我的用例:
作为 POC 的一部分,我将从我的 python 应用程序中调用 terraform apply
命令,我计划在其中将 Openstack 凭据定义为环境变量,并在执行完成后取消设置相同的凭据。 通过这种方式,我可以避免将凭据存储在文件中以及保管库/领事的复杂性。
请澄清,谢谢。
有几种方法可以解决这个问题。我建议从保险库中执行此操作。但是,如果您真的不想这样做,则可以使用Terraform输入变量并在那里使用环境变量。
像这样: terraform apply -var "osuser=${ENV_VAR}"
或者专门针对 Terraform 中的 OpenStack 提供程序,您可以使用此处记录的环境变量:https://www.terraform.io/docs/providers/openstack/
从文档:
auth_url -(可选;如果未指定云,则为必需(身份验证 URL。如果省略,则使用OS_AUTH_URL环境变量。
这些环境变量通常也会在开放堆栈 GUI 中提供给您。
你也可以提示用户这些事情,正如我在 https://github.com/hashicorp/terraform/issues/13022#issuecomment-819658436 中提到的:
# You can set other TF variables in here as well.
echo "Please enter the outgoing e-mail account's password: "
read -sr TF_VAR_smtp_password_unquoted
export TF_VAR_smtp_password=""$TF_VAR_smtp_password_unquoted""