Terraform створення проекту та запуск AWS EC2
Короткий опис, посилання на документацію та встановленняTerraform описані тут>>>.
Нижче наведено приклад створення простого проекту та запускAWC EC2 інстансу за його допомогою.
Створюємо каталог проекту:
Створюємо файл із розширенням .tf, який буде файлом конфігурації нашої «інфраструктури»:
Додаємо дані до файлу:
Блок provider описує провайдера, в даному випадку цеAmazon Web Service, в якому ми підніматимемоEC2 сервер.
Блок ресурсу визначає ресурси, які будуть існувати в нашій архітектурі. Тут можуть бутиAWS EC2 сервери або якась програма, наприкладHeroku.
Перебуваючи всередині створеної директорії - виконуємо terraform plan , який відобразить усі зміни, які мають бути виконані відповідно до файлу конфігурації проекту, який ми щойно створили. При цьому файлів .tf може бути кілька (з описом окремих сервісів, глобальних змінних і т.д.) -Terraform прочитає кожен з них.
Крім того,Terraform у каталозі проекту (з точки запуску plan ) створить файл terraform.tfstate , в якому вJSON -форматі будуть записані всі плановані зміни:
Після того, як plan показав коректність даних у файлі конфігурації - запускаємо apply, після чого Terraform почне виконання всіх необхідних дій.
При цьому можуть з'явитися помилки, пов'язані вже з інфраструктуроюAWS, наприклад:
Знаходимо відповідну підмережу:
У файл test_1.tf, в блок:
Запускаємо ще раз:
Тепер проблема із сховищем.AMI IDбув взятий з одного з наших старих файлів налаштувань, тому знаходимо новий. ДляUbuntu можна знайти списокAMI по регіонах тут - https://cloud-images.ubuntu.com/locator/ec2/
Опис сховищ для різних типів інстансів можна знайти тут - https://aws.amazon.com/ec2/instance-types/
| us-west-2 | trusty | 14.04 LTS | amd64 | ebs | 20151019 | ami-96e605a5 | aki-fc8f11cc |
ОновлюємоAMI ID у файлі test_1.tf і ще раз перевіряємо:

Переглянути поточні параметри проекту можна за допомогою show:
Дані, як говорилося, зберігаються у файл terraform.tfstate :
Перевіряємо наявність інстансу:
Щоб увімкнути ведення лога роботи — встановіть дві змінні: