Вероятно, вы захотите создать план сборки, который будет выглядеть следующим образом:
STAGE: Plan
JOB: Plan
TASK: Script, terraform init -input=false
TASK: Script, terraform validate -input=false
TASK: Script, terraform plan -out=tfplan -input=false
STAGE: Apply
JOB: Apply
TASK: Script, terraform apply -input=false tfplan
Стадия «Применить» должна быть сконфигурирована как «Ручная стадия», что означает, что перед запуском она требует утверждения вручную. . Это позволяет просмотреть созданный план Terraform на первом этапе, прежде чем применять его в вашей инфраструктуре. Сам план может быть связан с репозиторием и запускаться в репозитории с вашими спецификациями Terraform.
Что касается подключения к AWS, вы можете предоставить необходимые переменные Terraform в качестве переменных среды в ваших скриптах, которые сами ссылаются на к обычным бамбуковым переменным. Например:
export AWS_ACCESS_KEY_ID ="${bamboo.AwsAccessKeyId}"
terraform plan ...
С точки зрения получения значений этих переменных из AWS вас может заинтересовать этот плагин: https://marketplace.atlassian.com/apps/1221965/secret-managers-for-bamboo (обратите внимание, что я являюсь аффилированным лицом).