Найти тему
Игорь Сотников

Terraform. Создание Ресурсов AWS.

В данной статье посмотрим и разберем, как создать простейшие ресурсы в облаке AWS с помощью замечательного инструмента IaaS, под названием Terraform. Для того, чтобы можно было повторить то, о чем пойдет речь в статье необходим действующий аккаунт AWS и рабочая машина (виртуальный сервер) с установленным Terraform, и текстовым редактором Atom + плагин для Terraform. Первоначальная настройка данных инструментов разбиралась в предыдущих статьях. Описание в статье пойдет под операционную систему CentOS. Вы можете для тренировки использовать на свой вкус любую.

Для начала создадим папку под наш новый проект, можно непосредственно в домашней директории.

sudo mkdir terraform

Создадим первый файл нашего терраформ кода. Можно создать непосредственно в редакторе, через меню или в командной строке sudo touch myterr.tf . Принципиальной разницы, как будет создан файл нет. Если создали через командную строку открываем, как обычный файл в редакторе.

Далее схема работы следующая. Пишем код в файле, сохраняем, производим управляющие команды в командной строке для выполнения или проверки данного кода, уничтожения, модификации элементов или объектов в облаке.

Как в начале статьи было сказано, нам необходим аккаунт AWS, чтобы терраформ взаимодействовал с облачной инфраструктурой, а более конкретно нам нужно создать пользователя и получить access key и secret key, для доступа к облаку. Это необходимо для аунтификации terraform в AWS облаке.

Заходим в AWS консоль. Выбираем сервис IAM. Заходим во вкладку пользователи и создаем новую учетную запись. Вводим имя пользователя в пустое поле. Нужно поставить Programmatic access. Нажимаем создать пользователя. Попадаем на закладку назначения прав. Тут необходимо присоединить уже созданный по умолчанию в AWS набор прав администратора. Далее переходим к страничке назначения tag , тут по желанию вашему , если хотите то можете добавить таги. Нажимаем кнопку создать пользователя.

-2

Финальное окно будет выглядеть следующим образом.

Получаем те данные, которые нам необходимы для Terraform. Очень важно! Secret key показывается только один раз!

-3

Теперь в принципе все готово для создания первого ресурса в AWS.

Начинаем с объявления с каким облаком мы работаем.

provider “aws” {

}

Тем самым мы обозначили с каким облачным провайдером мы будем работать. В данном коде в отличии от yaml, количество пробелов не важно. Далее прописываем access key и secret key. В каком регионе будут использоваться ресурсы. Регион мы укажем eu-central-1 – это ЦОД расположенный в Европе во Франфуркте. Старайтесь регион указывать, поближе к себе, чтобы до ресурсов была минимальная задержка прохождения пакетов.

provider “aws” {

access_key = “тут ключ доступа”

secret key = “тут секретный ключ”

region = “eu-central-1”

}

При нажатии ctrl+S, мы сохраняем и видим, что плагин аккуратно выправляет для удобства написанный код.

Теперь можно сделать первый ресурс. Например, инстанс в Амазон. Добавляем ниже:

resource “aws_instance” “my_название” {

ami = “”

instance_type = “”

}

Для поднятия ресурса необходимо указать 2 минимальные вещи. Это ami – image id и instance_type. Теперь необходимо пойти в указанный регион, открыть EC2 и посмотреть ami интересующего инстанса.

-4

А тип возьмем t2.micro. Данный тип для новых аккаунтов на год бесплатный. Получаем код полностью готовый для развертывания первого инстанса.

В принципе все готово для запуска первого инстанса. Код Terraform будет выглядеть следующим образом

provider “aws” {

access_key = “тут ключ доступа”

secret key = “тут секретный ключ”

region = “eu-central-1”

}

resource “aws_instance” “TestUbuntu” {

ami = “ami-0767046d1677be5a0”

instance_type = “t2.micro”

}

Запускаем консоль и переходим в директорию, где находится у нас Terraform.

Далее есть небольшой нюанс запуска, чтобы в коде не светить свои access_key и secret_key, эти данные можно убрать, экспортировав в переменные. Делается это следующим образом. С помощью команды export.

export AWS_ACCESS_KEY_ID=ключ

export AWS_SECRET_ACCESS_KEY=ключ

И можно убирать эти 2 строчки из кода.

Теперь запускаем Terraform. Первая команда, которую необходимо сделать это команда terraform init, данная команда пройдется по всем tf файлам, она увидит провайдера и скачает дополнительные файлы, необходимые для запуска в том числе и бинарники. Сам Terraform – это такая оболочка, которая подкачивает все, что ей необходимо.

-5

Следующая команда, которая понадобится это terraform plan, данная команда позволяет посмотреть, что Terraform будет делать. Т.е нечто вроде Whatif. Данная команда очень важна т.к в крупных проектах, позволяет заранее посмотреть, что будет если мы запустим файл терраформа. Вывод ее большой, кусочек представлен на картинке.

-6

Можно увидеть, что добавится. Достаточно удобно. Как мы видим, при команде на deploy, Terraform добавит в амазон 1 instance, т.е 1 виртуальную машину из указанного шаблона, указанного типа и размера.

Непосредственно для deploy, необходимо ввести команду terraform apply, прочитать что terraform будет делать и явным образом, командой yes подтвердить.

-7

После подтверждения видим следующую картину. Со стороны консоли.

-8

Со стороны амазона спустя полминуты.

-9

Как мы видим сервер создался и проходит инициализацию.

Если у кого появится желание пообщаться или для сотрудничества, мой ТГ канал https://t.me/ITharchevnya

Если у кого есть желание сказать спасибо за канал или статьи :

Сбер : 4274 3200 2419 9740

Paypal: is.sotnikov@gmail.com

QIWI: KNEYE561

Юmoney ( ЯД ) 41001606289345

#Terraform #AWS #open source #Devops