是否有任何选项可用于处理 Terraform 中的 Openstack 提供者凭证,类似于 AWS 提供者中存在的选项,如Environment variables。
我的用例:
作为 POC 的一部分,我terraform apply
将从我的 python 应用程序中调用命令,我计划在其中将 Openstack 凭据定义为环境变量,并在执行完成后取消设置。这样,我可以避免将凭据存储在文件中以及保管库/领事的复杂性。
请澄清一下,谢谢。
是否有任何选项可用于处理 Terraform 中的 Openstack 提供者凭证,类似于 AWS 提供者中存在的选项,如Environment variables。
我的用例:
作为 POC 的一部分,我terraform apply
将从我的 python 应用程序中调用命令,我计划在其中将 Openstack 凭据定义为环境变量,并在执行完成后取消设置。这样,我可以避免将凭据存储在文件中以及保管库/领事的复杂性。
请澄清一下,谢谢。
有几种方法可以解决这个问题。我建议从 Vault 执行此操作。但如果你真的不想这样做,你可以使用 Terraform 输入变量并在那里使用环境变量。
像这样:terraform apply -var "osuser=${ENV_VAR}"
或者专门针对 Terraform 中的 OpenStack 提供程序,您可以使用此处记录的环境变量:https ://www.terraform.io/docs/providers/openstack/
从文档:
auth_url - (可选;如果未指定 cloud,则为必需)身份验证 URL。如果省略,则使用 OS_AUTH_URL 环境变量。
这些环境变量通常也在 openstack 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\""