Проектирование проекта: роли и инвентарь
Спланируйте репозиторий полного развёртывания
«Проектирование проекта: роли и инвентарь» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Цель итогового проекта
Пора развернуть настоящее многоуровневое приложение с поэтапным развёртыванием и без простоя. Первый шаг — спроектировать структуру проекта. 🚀
Думайте в терминах ролей
Разделите систему на роли: по одной на каждую область ответственности, например common, web, app, db и loadbalancer. Каждую роль можно повторно использовать и тестировать отдельно.
Структура верхнего уровня
В аккуратном репозитории инвентарь, group_vars, роли и основной плейбук site.yml находятся в корне, поэтому любой быстро найдёт нужные файлы.
deploy/
site.yml
inventory/
group_vars/
host_vars/
roles/site.yml связывает всё вместе
Главный плейбук site.yml последовательно подключает plays для каждого уровня. Это единственная команда, разворачивающая весь стек.
- import_playbook: plays/loadbalancer.yml
- import_playbook: plays/db.yml
- import_playbook: plays/app.yml
- import_playbook: plays/web.ymlСвязь уровней с группами
Ваш инвентарь определяет отдельную группу для каждого уровня: lb, db, app и web. Каждый play нацелен ровно на те узлы, за которые он отвечает.
[lb]
lb1
[web]
web1
web2
[app]
app1
app2
[db]
db1group_vars для каждого уровня
Храните настройки уровней в group_vars: порты web, версию app и учётные данные db. Узлы наследуют их автоматически, без копирования.
group_vars/web.yml:
nginx_port: 80
upstream: app:8080host_vars для особых случаев
Если один узел отличается от остальных, поместите переопределения в host_vars. Например, основной db может содержать настройки репликации, которых нет у остальных.
host_vars/db1.yml:
postgresql_role: primaryФиксация версии приложения
Сделайте версию выпуска переменной, а не строкой, жёстко записанной в конфигурации. Единая точка изменения позволяет за несколько секунд перейти на новую версию или вернуться к предыдущей.
group_vars/all.yml:
app_version: "2.4.1"Разделяйте окружения
Храните отдельные папки инвентаря для каждого окружения, чтобы staging и production никогда не использовали общие узлы. Роли те же, цели разные.
inventory/
staging/hosts
production/hostsФиксация зависимостей
Перечислите внешние роли Galaxy в requirements.yml, чтобы каждый участник команды и каждый запуск CI устанавливал абсолютно одинаковый код автоматизации.
roles:
- name: geerlingguy.nginx
version: 3.1.4Продуманная архитектура окупается
Продуманная структура превращает пугающее развёртывание в несколько предсказуемых команд. Структура, созданная сейчас, избавит Вас от аварийных работ в будущем. 🧱
Быстрая проверка
Разместим один элемент конфигурации правильно.
Итоги
Вы спроектировали репозиторий: роли для каждого уровня, группы инвентаря, group_vars и host_vars, а также site.yml, запускающий всё развёртывание. ✅
Часто задаваемые вопросы
Урок «Проектирование проекта: роли и инвентарь» бесплатный?
Да — полный текст урока «Проектирование проекта: роли и инвентарь» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Проектирование проекта: роли и инвентарь»?
Спланируйте репозиторий полного развёртывания Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Проектирование проекта: роли и инвентарь»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Проектирование проекта: роли и инвентарь
- Подготовка, усиление защиты и начальная настройка узлов
- Поэтапное развёртывание за балансировщиком
- Дымовые тесты, откат и уведомления