Необходимо извлечь логин и пароль от RDS, которые хранятся в AWS Secret Manager и использовать их значения в Terraform коде. Для этого можно воспользоваться следующей конструкцией: И использовать переменные:
В SSM Parameter Store содержится JSON следующего вида: Необходимо извлечь логин и пароль, и использовать их значения в Terraform коде. Для этого можно воспользоваться следующей конструкцией: И использовать переменные:
В данном примере мы создадим Terraform модуль для провайдера AWS, который будет запускаться для 3-х разных окружений при помощи Terragrunt'a. Требования: Установленный AWS CLI Установленный Terraform (версия выше 12.0) Установленный Terragrunt
При попытке сделать terraform plan или terraform apply, terraform возвращает следующую ошибку: Error: Unsupported block type Blocks of type "tags" are not expected here. Did you mean to define argument "tags"? If so, use the equals sign to assign it a value. Решение: В terraform версиях ниже 12-ой для "tags" использовался следующий синтаксис: …
Продолжить читать "FIX ERROR — Terraform: Blocks of type "tags" are not expected here."
Для создания Terraform файлов на основе существующей инфраструктуры будем использовать Terraformer В данном примере будет использоваться система macOS, так что terraformer устанавливаем с помощью homebrew: Установку под другие ОС можно найти на странице проекта. Создаем директорию под хранение плагинов (для работы с провайдерами) Примеры генерации Terraform файлов AWS Находим самую …
Продолжить читать "Terraform — Генерация файлов на основе существующей инфраструктуры"
При попытке выполнить "terraform apply" в ходе выполнения на создании "IAM Profile" он завершается со следующей ошибкой: Решение: При помощи AWS Cli найти IAM Profile и удалить его. Смотрим список существующих IAM Profile: Удаляем ненужный IAM Profile:
Пример конфигурации Terraform, который создает 2 VPC в разных регионах (EU и US) и создает между ними связность. variables.tf
Пример конфигурации Terraform, который создает Kubernetes кластер (Bare Metal) на AWS EC2. Создает Ingress с NodePort. И в конце выполнения вывод публичные IP адреса Ingress нод. Данный темплейт создает следующие EC2 инстансы: 1 manager 2 workers 2 ingresses variables.tf
Пример конфигурации Terraform, который создает GCN (Google Compute Network), GCF (Google Compute Firewall), Instance. Пример использования "metadata_startup_script" в Instance main.tf variables.tf
Установка Terraform довольно проста, так как он написан на Go, достаточно скачать архив с бинарным файлом. Перейдем на страницу загрузки: https://www.terraform.io/downloads.html Скачиваем архив, извлекаем бинарный файл и перемещаем его в "/usr/bin/" (или прописываем его в PATH) Проверим: Если вы используете оболочку "bash" или "zsh", то можно добавить автодополнение для Terraform следующей командой: