0Pricing
DevOps Bootcamp · Урок

Проектирование проекта: роли и инвентарь

Спланируйте репозиторий полного развёртывания

«Проектирование проекта: роли и инвентарь» — бесплатный урок 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]
db1

group_vars для каждого уровня

Храните настройки уровней в group_vars: порты web, версию app и учётные данные db. Узлы наследуют их автоматически, без копирования.

group_vars/web.yml:
  nginx_port: 80
  upstream: app:8080

host_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 — локальная установка не требуется.

Все уроки этого курса

  1. Проектирование проекта: роли и инвентарь
  2. Подготовка, усиление защиты и начальная настройка узлов
  3. Поэтапное развёртывание за балансировщиком
  4. Дымовые тесты, откат и уведомления
← Назад к DevOps Bootcamp