Обработка учетных данных поставщика Openstack в Terraform без хранилища
Есть ли какая-либо опция для обработки учетных данных провайдера Openstack в Terraform, аналогичная той, которая существует в провайдере AWS, например, переменные среды.
Мой случай использования:
Как часть POC, я буду ссылаться на terraform apply
команда из моего приложения на Python, в которой я планирую определить учетные данные Openstack как переменные среды и сбросить их после завершения выполнения. Этим я могу избежать хранения учетных данных в файлах, а также сложности хранилища / консула.
Пожалуйста, уточните, спасибо.
2 ответа
Есть несколько способов решения этой проблемы. Я бы порекомендовал сделать это из Убежища. Но если вы действительно не хотите этого делать, вы можете использовать входные переменные Terraform и использовать там переменные окружения.
Как это: terraform apply -var "osuser=${ENV_VAR}"
Или специально для провайдера OpenStack в Terraform вы можете использовать переменные среды, которые описаны здесь: https://www.terraform.io/docs/providers/openstack/
Из документации:
auth_url - (Необязательно; требуется, если облако не указано) URL-адрес аутентификации личности. Если опущен, используется переменная окружения OS_AUTH_URL.
Эти переменные среды обычно также предоставляются в графическом интерфейсе openstack.
Вы также можете предложить пользователю эти вещи, как я упоминал в 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\""