Ansible Academy · Урок

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

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

Урок 1 из 413 шагов

«Проектирование проекта: роли и инвентарь» — бесплатный урок Ansible Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ansible Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ansible Academy содержит 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, запускающий всё развёртывание. ✅

Можно начать бесплатно

Изучай YAML с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «Проектирование проекта: роли и инвентарь» бесплатный?

Да — полный текст урока «Проектирование проекта: роли и инвентарь» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ansible Academy, подпишись на CoddyKit PRO. Курс Ansible Academy содержит 4 уроков всего.

Чему я научусь в уроке «Проектирование проекта: роли и инвентарь»?

Спланируйте репозиторий полного развёртывания Ты практикуешь Ansible Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Ansible Academy?

Предыдущий опыт не требуется. Ansible Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Проектирование проекта: роли и инвентарь»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Ansible Academy?

Да. Каждый урок Ansible Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

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

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