Как сделать так, чтобы несколько провайдеров зависели от среды? - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть две разные конфигурации AWS. На ноутбуке разработчика разработчик использует mfa-secure profile внутри shared_credentials_file.

В jenkins мы экспортируем переменные окружения, а затем принимаем на себя роль.

Это означает, что блоки провайдера выглядят действительно иначе. На корневом уровне они имеют одинаковые backend.tf.

Я знаю, что у меня могут быть два разных корня с разными провайдерами, но есть ли способ, чтобы мне не приходилось дублировать backend.tf и другие корневые файлы?

Ответы [ 2 ]

0 голосов
/ 19 апреля 2019

Решение, которое я считаю наиболее целесообразным, заключается в размещении локальных разработчиков и автоматов jenkins в двух отдельных каталогах среды , каждый со своим собственным aws.tf и рабочим пространством бэкэнда.

Это имело смысл, потому что разработчики не должны связываться с ресурсами, созданными автоматизацией, и любые операции с бэкэндом jenkins должны выполняться jenkins, иначе разработчики могут перезаписать ресурсы, которые jenkins создает, и наоборот.

0 голосов
/ 09 апреля 2019

Я понял вашу мысль, но это не рекомендуется. Подготовьте конфигурацию aws с помощью системных переменных среды, прежде чем запускать команды terraform.

AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN (optional)
AWS_DEFAULT_REGION
AWS_DEFAULT_PROFILE (optional)

https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html

...