Terraform База
Модуль 1. Введение
Введение в Terraform
— Старый подход, IaC, знакомство с инструментом (история, компания, основные принципы и применение)
— Сравнение с другими инструментами (Ansible, управление конфигурациями vs оркестрация)
Знакомство с окружением
— Обзор Yandex Cloud (панель управления, основные сервисы), окружение студента, авторизация
— Знакомство с конфигурацией VM, MDB, ALB, сети
Модуль 2. Начало работы с Terraform
Настройка окружения
— Установка утилиты Terraform
—Зеркала Terraform, файл terrafromrc для глобальной конфигурации, настройка зеркал
—Авторизация в облаке из Terraform
Провайдеры Terraform
— Как Terraform взаимодействует с облаком (API), понятие провайдера
— Структура конфигурации, версии провайдеров, Terraform init
— Полезные провайдеры Terraform, документация и работа с ней
Модуль 3. Ресурсы
Описание объектов инфраструктуры
— Структура файлов описания инфраструкруты в Terraform
— Понятие ресурса, документация к ресурсам, аргументы и атрибуты ресурсов, зависимости между ресурсами
HCL
— Типы полей в HCL
— Организация файлов в проект
Применение конфигурации
— Команды Terraform plan и Terraform apply
— Проверка плана изменений
— Пересоздание и изменение налету
Terraform state
— Как Terraform сохраняет изменения, файл tfstate и tfstate.back, значение и важность стейта
— Как импортировать уже созданную инфу в Terraform-файлы, что делать если стейт пропал (базово)
Модуль 4. Переменные
Ввод пользовательских данных
— Variables, синтаксис описания, возможные поля, отдельный файл для переменных, ввод переменных из консоли или из файла, разные переменные для разных сред
Locals
— Разница между locals и variables
— Когда стоит использовать locals с примерами
Сложные типы данных в переменных
— Списки, словари в переменных, случаи использования
Outputs
— Вывод данных через outputs, модули и их связь через outputs
Модуль 5. Управляющие структуры
Ветвление в Terraform
— Ветвление в Terraform, тренарный оператор
Циклы в Terraform
— Необходимость циклов, count, index, примеры
for_each
— Отличие count и for_each, примеры использования
Модуль 6. Дополнительные возможности Terraform
Datasource
— Датасурсы, документация
— Работа с датасурсами, примеры применения
Провиженеры
— Необходимость использования провиженеров, типы провиженеров в Terraform
— Local и remote exec, структура конфигурации
— Шаблонизация файлов, язык, примеры
— Ansible: как заставить запровижениться после создания инфры
Модуль 7. Продвинутые практики
Хранение стейта
— Удаленное хранение стейта в S3, локи и совместная работа
Модули
— Суть модулей, использование чужих модулей
Шаблонизация Terraform
— Проблема больших конфигураций, переиспользование, Terragrunt
Подходы к работе с инфраструктурой
— Cattle, Backed инфра, Packer