Документы Terraform Cloud прикрыть это, и это не запрещено, но и не то чтобы поощряется. В этих документах упоминаются 2 метода с использованием местный исполнитель
поставщика (использование которого описывается как «последнее средство» и потенциально проблематично) или с помощью подмодуль. В документах также упоминается, что следует использовать только «автономные двоичные файлы». к счастью aws-iam-аутентификатор
действительно доступен как статический автономный двоичный файл для многих систем. К сожалению, документация, кроме упоминания подмодулей, не описывает шаги, необходимые для того, чтобы это работало.
Надеемся, что в будущем Hashicorp предоставит менее хакерский и более поддерживаемый способ настройки этих сред, но до тех пор...
Во-первых, нам нужен совместимый двоичный файл, и хотя мы точно не знаем, какая ОС/образ запускается экземплярами Terraform Cloud, мы знаем из документация что он совместим с Linux x86_64. Следовательно, поскольку aws-iam-аутентификатор
доступен как отдельный статический двоичный файл для Linux x86_64, нам нужно ввести этот двоичный файл в среду, а затем сделать его доступным для экземпляра в целом (поскольку мы не контролируем, как именно он вызывается).
Terraform Cloud позволяет вам манипулировать переменными среды, мы можем добиться этого, манипулируя $ПУТЬ
переменная, как только у нас будет двоичный файл на хосте. Самый простой способ сделать это — просто добавить двоичный файл в конфигурацию внутри папки, однако, если вы хотите использовать это для нескольких конфигураций без необходимости управлять двоичным файлом отдельно в каждой (представьте, что вам нужно обновлять их все по отдельности), Я бы рекомендовал сделать это как подмодуль в вашем репозитории git.
Вот пример публичное репо, содержащее бинарный файл, вы должны добавить это в свой репозиторий в качестве подмодуля следующим образом:
подмодуль git добавить https://github.com/comerford/tc-tools.git
Затем вы можете зафиксировать/отправить, как обычно, убедившись, что ваши настройки управления версиями для вашего рабочего пространства настроены на клонирование подмодулей, как показано ниже:
Наконец, чтобы убедиться, что независимо от того, как называется бинарный файл, он работает, необходимо внести изменения в ДОРОЖКА
переменная окружения, чтобы она увидела ваш новый бинарник, но при этом ничего не сломала. Вот ENV
переменная, которая работала для меня с учетом вышеуказанного подмодуля:
Чтобы дать эту строку в более удобном формате:
"~/tc-tools:/home/terraform/tc-tools:./tc-tools:/usr/bin:/usr/local/bin:/bin:$PATH"
Это предположение о вероятных путях, и я не уверен на 100%, какой из них работает, потому что я не хотел вызывать прерывание выполнения ради нескольких символов.
Хотя это специально для aws-iam-аутентификатор
двоичный, он должен работать как общий метод для любого статического двоичного файла Linux x86_64, который вам понадобится.