Ansible Masterclass: развертывание без простоя (Проект 1)
Rahul Wagh
0:00 / 0:00
Ansible Masterclass: развертывание без простоя (Проект 1)
1 912 просмотров · 1 день назад
Rahul Wagh
105 тыс. подписчиков
1 912 просмотров · 1 день назад
Большинство руководств по Ansible останавливаются на «установке nginx». Это руководство — исключение. В этом видео мы создаём то, что действительно выпускает команда разработчиков: балансировщик нагрузки nginx, два сервера приложений Flask под управлением systemd, базу данных PostgreSQL с паролем в Ansible Vault, развертывание с нулевым временем простоя и дымовой тест, доказывающий работоспособность всего этого. Всё это работает на вашем собственном ноутбуке с помощью Docker, бесплатно, а те же самые плейбуки позже запускаются на AWS, Google Cloud и Azure.
Это первая из четырех частей серии «Реальные проекты Ansible»:
▶ Часть 1: Docker на вашем ноутбуке (это видео)
▶ Часть 2: AWS с Terraform (скоро будет доступно)
▶ Часть 3: Google Cloud с Terraform (скоро будет доступно)
▶ Часть 4: Azure с Terraform (скоро будет доступно)
🔗 ССЫЛКИ
📝 Репозиторий кода и полное описание каждой команды и реального результата: https://jhooq.com/ansible-real-world-...
🐳 Запустите лабораторию Ansible на своем ноутбуке с помощью Docker: https://jhooq.com/ansible-lab-on-lapt...
🎓 Этот проект — одна из глав моего курса на Udemy «Ansible Masterclass: The Complete Automation Bootcamp» (66 лекций, более 7 часов, все плейбуки на GitHub). Купон на запуск: https://www.udemy.com/course/ansible-...
⏱ ВРЕМЕННЫЕ МЕТКИ
00:00:00 Введение: что мы создаём и серия из 4 частей
00:01:43 Обзор архитектуры: пользователи → балансировщик нагрузки nginx → приложение-1 / приложение-2 → PostgreSQL
00:04:10 Репозиторий GitHub и статья в блоге: клонирование проекта, где всё находится
00:10:58 Makefile: 7 коротких команд, запускающих весь проект (make lab-up, deps, ping, site, deploy, smoke, lab-down)
00:14:48 requirements.yml и коллекции Ansible Galaxy (community.postgresql, community.general)
00:17:10 Инвентаризация и хосты: docker.ini, группы и одна переменная (private_ip), которая делает плейбуки переносимыми
00:18:24 Общая роль: базовые пакеты, имена хостов, /etc/hosts
00:20:49 Роль postgres: установить PostgreSQL, открыть его для серверов приложений, создать базу данных и пользователя с паролем из Ansible Vault
00:23:00 Роль приложения: virtualenv, скопировать код, .env из шаблона, юнит systemd, проверка работоспособности
00:25:33 Роль балансировщика нагрузки nginx: upstream поверх обоих серверов приложений, повторные попытки, опционально Let's Encrypt
00:28:26 Инкрементальный релиз: deploy.yml с serial: 1, развертывание с контролем работоспособности, нулевое время простоя, 0 неудачных запросов
00:33:15 Развернуть все: создать сайт с нуля, failed=0 Обновите страницу на всех четырех серверах и наблюдайте за чередованием приложений app-1 и app-2.
🧩 ЧТО ВЫ УЗНАЕТЕ
• Как структурировать реальный проект Ansible: инвентаризация, group_vars, роли, плейбуки, Makefile
• 4 роли: common, postgres, app, nginx_lb и как они взаимодействуют в site.yml
• Развертывание без простоев с помощью serial: 1 и проверки работоспособности перед следующим сервером
• Секреты с Ansible Vault и файл паролей Vault, чтобы ничего конфиденциального не хранилось в Git
• Обработчики, flush_handlers, шаблоны (Jinja2), модули uri и wait_for, delegate_to
• Локальная лаборатория с 4 контейнерами systemd в Docker, которые ведут себя как облачные виртуальные машины
• Как одни и те же плейбуки переносятся в AWS, GCP или Azure путем изменения только инвентаризации
🛠 СТЕК
Ansible 2.15+ · Docker · Ubuntu 22.04 · nginx · Python 3 / Flask / gunicorn · PostgreSQL 14 · systemd · Terraform (облачные компоненты) · GitHub Actions (CI-развертывание + дымовое тестирование)
🎓 ИЗУЧИТЕ ANSIBLE С НУЛЯ
Если вы новичок в Ansible, в этом проекте используется все из моего курса на Udemy: плейбуки, инвентаризация, переменные, циклы, обработчики, теги, шаблоны Jinja2, Galaxy и Vault, в 11 разделах с практическими заданиями. Купон на запуск в закрепленном комментарии.
https://www.udemy.com/course/ansible-...
📺 БОЛЬШЕ ОТ МЕНЯ
Блог: https://jhooq.com
GitHub: https://github.com/rahulwagh
Все мои курсы: https://www.udemy.com/user/rahul-wagh...
#ansible #devops #docker #terraform #nginx #postgresql #automation #infrastructureascode