Содержание курса
Для доступа к урокам тебе необходимо приобрести подписку.
Первые два урока — Бесплатные.
Для оплаты перейди в телеграм бота и следуй инструкциям. После оплаты бот скинет тебе логин и пароль. По всем вопросам касаемо оплаты и доступа можешь обращаться ко мне напрямую.
Если бот не отвечает, пошли его ему сообщение /start
Первый сезон
В этом сезоне мы:
-
Научимся готовить Ansible. Напишем профессиональные роли и плейбуки. Рассмотрим неочевидные трюки и фишки с которыми ты столкнешься в реальных проектах.
-
Соберём docker контейнеры с приложениями и разместим их в приватных docker registry. Научимся правильно работать с приватными репозиториями, токенами и ключами.
-
Изучим основы Gitlab, напишем первые пайплайны и автоматизируем процесс деплоя в рамках CI/CD. Подключим раннеры, делегируем сборку на DIND и Kaniko. Разберемся с мульти-тэгами и артефактами. Сделаем универсальный шаблон docker compose для нескольких проектов. Вынесем пайплайны в отдельный репозиторий и научимся их гибко подключать.
Описание и список уроков [ нажми ]
Список уроков
s1e0 — Подготовка лаборатории
Вводное занятие, в котором мы подготовим окружение для экспериментов. Поднимаем необходимую инфраструктуру, настраиваем доступы, прописываем ssh ключи.
s1e1 — Я въезжаю в стройку
Устанавливаем актуальную версию Ansible и создаем шаблон проекта по бест-практикам. Знакомимся со структурой проекта, готовим отдельный конфиг под каждый проект.
s1e2 — Взлетаем
Описываем инфраструктуру в inventory файлах, разделяем сервера по группам, разводим логику по окружениям stage и production.
s1e3 — Головоломка
Быстренько проходимся по ad-hoc командам, рассматриваем самые распространенные модули, включаем дебаг режим, взаимодействуем с разными окружениями.
s1e4 — Взрослые игрушки
Знакомимся с концепцией ролей, познаём структуру, учимся писать свою первую роль и подключать inventory файлы в зависимости от окружения. Избавляемся от путаницы и всё разносим по полочкам.
s1e5 — Разделяй и властвуй
Отделяем роли от проекта, переносим их в отдельный git репозиторий, пишем плейбук инициализации, делаем всё по взросому и занимаемся очень важными вещами
s1e6 — Переменная облачность №1
Знакомимся с переменными на примере подключения swap файла, разделяем переменные по группам серверов, страхуем роли от факапа и делаем их универсальными.
s1e7 — Вершки и корешки
Избавляемся от рута, расширяем возможности пользователя на сервере, знакомимся с новым функционалом Ansible, приводим конфиги и процессы в порядок.
s1e8 — Фаршируем перцы
Автоматизируем установку софта в зависимости от окружения, подключаем репозитории, знакомимся с лупами и циклами, работаем со списками, игнорим ошибки.
s1e9 — Сжимаем булки
Отдыхаем от Ansible и проникаемся всеми прелестями docker контейнеров, упаковываем своё первое приложение, учимся работать с тэгами, проваливаемся внутрь, побеждаем свои страхи.
s1e10 — Великие дела
Разбираемся и создаём токены деплоя для работы с gitlab, готовим docker образ и пушим его в приватный registry, подчищаем мусор и пулим его обратно.
s1e11 — Проходим пороги
Знакомимся с Kaniko и DIND, переосмысляем сборку docker образов, внедряем изоляцию, завязываем процессы в одну кучку, избавляемся от избыточных команд.
s1e12 — Труба зовет
Заводим собственные раннеры для взаимодействия с gitlab, подключаем раннеры к проекту, знакомимся с базовыми типами.
s1e13 — Двигатель прогресса
Пишем первый пайплайн, триггеримся на коммиты, собираем отдельные образы для stage и production, избавляемся от ручного труда.
s1e14 — Переменная облачность №2
Деградируем, изучаем базу с группами и подгруппами в inventory файлах. Осознаём принцип работы и как делать не нужно.
s1e15 — Регистратура
Добиваем Ansible переменные, регистрируем, читаем, склеиваем, дебажим.
s1e16 — Рвем шаблоны
Пишем Ansible роль для балансировщика, рендерим конфиги, знакомимся с хендлерами, разбираемся с локейшенами и бэкапами конфигов.
s1e17 — Выкатываем питона
Рефакторим пайплайн, выносим раннеры в переменную, проникаемся бест-практиками, заводим shell раннеры, выкатываем питона в прод и проксируем через балансировщик.
s1e18 — Рукоблудие
Самостоятельная работа по итогам изученного. Вносим правки, адаптируем пайплайны под хотелки технического директора, приседаем вокруг basic auth, садим питона на отдельный URL.
s1e19 — Пестики и тычинки
Отдыхаем после душной контрольной, избавляемся от привязки к проекту, выносим пайплайны в отдельный git репозиторий, инклудим нужные пайплайны из любого проекта.
s1e20 — Расхитительница гробниц
Собираем артефакты, прокидываем их между джобами и стадиями, интегрируемся с docker образами и контейнерами.
Второй сезон
В этом сезоне мы:
-
Научимся делать API запросы в gitlab, получать необходимые данные и запускать по запросу пайплайны из любого места.
-
Поработаем с нативным Ansible шифрованием и переменными, посмотрим как лучше не делать. Установить и подготовим к работе Hashicorp Vault. Научимся дёргать ролями нужные нам секреты.
-
Рассмотрим приоритеты запуска Ansible ролей и тасок.
-
Скрестим gitlab и ansible, подготовим дружелюбный интерфейс для прогона необходимых ролей.
-
Добьем переменные и рассмотрим неочевидные ситуации.
-
Поработаем с docker compose и научимся генерировать docker-compose.yml налету в зависимости от проекта и переменных.
-
Перетащим раннеры в docker контейнеры и максимально оптимизируем процессы.
-
Рассмотрим работу через бастион сервера и как достучаться ролями до серверов, которые находятся за NAT.
-
Настроем единую точку входа в наши приложения через Traefik.
-
Настроем динамическую систему мониторинга с автодискавери, всё в лучших традициях интерпрайза.
-
Научимся работать с экспортерами prometheus и напишем свои.
-
Настроим две системы алертов, нативные графановские и маст-хевные через alertmanager.
Описание и список уроков [ нажми ]
Список уроков
s2e1 — Мишки апишки
Знакомимся c API gitlab, делаем запросы, собираем пазлы, добираемся до артефактов и RAW логов, отдаем техническому директору через телеграм заветный архив с артефактами.
s2e2 — Ящик Пандоры
Скрываем критичные данные в переменных, учимся ковыряться, проникаемся шифрованием данных в плейбуках и ролях нативными средствами ansible.
s2e3 — Коробка с конфетами
Знакомимся с правильным Vault, втыкаем Hashicorp Vault на сервер, конфигурируем, пишем полиси и тыкаем палкой. Избавляемся от нативного Ansible Vault и делаем всё по уму.
s2e4 — Химера
Дружим одно со вторым, дергаем секреты из hashicorp vault с помощью Ansible ролей, создаем сервисные токены, курлим апишку.
s2e5 — Клеймим стадо
Продолжаем ковырять Ansible, разбираемся с тегами, делаем плейбуки более гибкими, упрощаем дебаг, запускаем роли и таски в нужной последовательности, выставляем приоритеты.
s2e6 — Гибкость хардкода
Готовим очередного монстра, запускаем ansible плейбуки из пайплайнов gitlab, кастомизируем параметры запуска, подготавливаем интерфейсы для удобной и комфортной работы.
s2e7 — Переменная облачность №3
Универсалим и тюним Ansible плейбуки, реализуем динамическую подстановку переменных, избавляемся от лишнего, закрываем открытые вопросы по переменным.
s2e8 — Система нипель
Заводим проект через динамический шаблон гитлаба, потихоньку перелезаем на docker compose, готовим проект к масштабированию и балансировке нагрузки.
s2e9 — Бегуны в коробке
Приводим в порядок раннеры и запускаем их в docker контейнерах, избавляемся от рутовых зависимостей и повышаем уровень наших скиллов.
s2e10 — Сквозняк
Настраиваем сервера через единую точку входа, бастион, джамп-хосты, делегирование.
s2e11 — Балансировка
Большой урок-гайд по Traefik, учимся готовить, самые основные моменты которые требуются в работе, практика, фичи, приколы и нюансы.
s2e12 — Remains №1
Короткие и важные штуки про ансибл, то что упустили, что стоит держать в голове, нюансы и трюки.
s2e13 — Большой брат №1
Поднимаем гибкую систему мониторинга. Настраиваем мастер-consul, прикручиваем agent, втыкаем экспортер, скрещиваем, добиваемся слаженной работы + пишем роли.
s2e14 — Большой брат №2
Заводим сервис дискавери, поднимаем прометеус и дружим его с консулом, работаем с тегами, делаем запросы.
s2e15 — Большой брат №3
Вкорячиваем Victoria Metrics, прикручиваем эту штуку к prometheus, добиваемся рабочей связки, решаем сетевые проблемы + мелкие фичи и полезности.
s2e16 — Большой брат №4
Учимся выживать без консула. Собираем метрики через коробочный функционал. Городим альтернативный авто-дискавери и раскрываем скрытый потенциал самого прометеуса. Упрощаем себе жизнь. Пишем роли, фиксим баги.
s2e17 — Тотальный экспорт
Прокачиваем возможности экспортера, изобретаем собственный на коленке, учимся вытаскивать полезную нагрузку для curl запросов, пишем скрипты.
s2e18 — Метрикой по морде
Конфигуряем графану, выводим графики, разбираемся с приборной панелью космического корабля, делаем выпадающие списки, выводим золотые сигналы.
s2e19 — Пускаем соплю №1
Импортируем дашборды, подсматриваем и ковыряемся с коробочными алертами. Интегрируем алерты в телеграм канал, плачем от избыточных настроек.
s2e20 — Пускаем соплю №2
Избавляемся от графановских соплей и прикручиваем мастхевный alertmanager, шлем новые алерты в телегу, упарываемся с конфигами и радуемся от полученного результата.
Третий сезон
В этом сезоне мы:
- Научимся правильно готовить Terraform
- Поработаем с Terragrunt и облаками
- Затронем тему Terraform + Proxmox
- Проникнемся бест-практиками
Описание и список уроков [ нажми ]
s3e01 — На встречу с облаками
Готовим себе рабочее пространство, устанавливаем terraform, производим базовую конфигурацию, генерируем токены, настраиваем взаимодействие с облаками.
s3e02 — Шлифовка и стейты
Разбираемся с сервисными пользователями, знакомимся со стейтами и переносим их в S3.
s3e03 — Генеральная уборка
Работаем с конфигурацией и чувствительными данными. Щупаем переменные. Наводим порядок в проекте, подключаем визуальную составляющую.
s3e04 — Первенец [ в работе ]
Создаём первый сервер, заводим flavor, разбираемся со скейлингом.