在没有保险库的情况下处理 Terraform 中的 Openstack 提供者凭据

Handling Openstack provider credentials in Terraform without vault

是否有任何选项可用于在 Terraform 中处理 Openstack 提供商凭证,类似于 AWS 提供商中存在的凭证,例如 环境变量

我的用例:

作为 POC 的一部分,我将从我的 python 应用程序调用 terraform apply 命令,我计划在其中将 Openstack 凭据定义为环境变量,并在执行完成后取消设置.通过这种方式,我可以避免将凭据存储在文件中以及 vault/consul 的复杂性。

请说明,谢谢。

有几种方法可以解决这个问题。我建议从 Vault 执行此操作。但如果你真的不想这样做,你可以使用 Terraform 输入变量并在那里使用环境变量。

像这样:terraform apply -var "osuser=${ENV_VAR}"

或者专门针对 Terraform 中的 OpenStack 提供程序,您可以使用此处记录的环境变量:https://www.terraform.io/docs/providers/openstack/

来自文档:

auth_url - (Optional; required if cloud is not specified) The Identity authentication URL. If omitted, the OS_AUTH_URL environment variable is used.

这些环境变量通常也在 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\""