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-2trusty14.04 LTSamd64ebs20151019ami-96e605a5aki-fc8f11cc

ОновлюємоAMI ID у файлі test_1.tf і ще раз перевіряємо:

запуск

Переглянути поточні параметри проекту можна за допомогою show:

Дані, як говорилося, зберігаються у файл terraform.tfstate :

Перевіряємо наявність інстансу:

Щоб увімкнути ведення лога роботи — встановіть дві змінні: