Назад к вопросам
Junior
93
questionbank

Из каких компонентов состоит плейбук Ansible?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Плейбук Ansible состоит из следующих основных компонентов:

  1. Play (Игра): Основная единица выполнения в плейбуке. Представляет собой набор задач, выполняемых на определенной группе хостов с заданной конфигурацией.
  2. Hosts (Хосты): Указывает целевые хосты или группы хостов, на которых будет выполняться игра. Определяется с помощью инвентарного файла или динамических инвентарей.
  3. Become (Стать другим пользователем): Позволяет выполнять задачи с повышенными привилегиями (например, как root) или от имени другого пользователя. Используется для операций, требующих специального доступа.
  4. Tasks (Задачи): Список шагов, которые Ansible должен выполнить на целевых хостах. Каждая задача вызывает модуль Ansible для выполнения конкретного действия.
  5. Modules (Модули): Функциональные единицы Ansible, которые выполняют конкретные действия (установка пакетов, копирование файлов, запуск команд и т.д.). Например: yum, apt, copy, shell.
  6. Name (Имя): Необязательное, но рекомендуемое поле для каждого плейбука, игры и задачи. Предоставляет читаемое описание того, что делает компонент.
  7. Vars (Переменные): Позволяет определить переменные, которые могут быть использованы в задачах. Повышает гибкость и переиспользование плейбуков.
  8. Handlers (Обработчики): Специальные задачи, которые выполняются только в случае изменения конфигурации, инициированного другими задачами. Часто используются для перезапуска служб.
  9. Roles (Роли): Механизм для организации плейбуков, переменных, файлов и обработчиков в повторно используемую структуру. Упрощает управление более сложными конфигурациями.
  10. Tags (Теги): Позволяют помечать игры или задачи для выборочного выполнения или пропуска при запуске плейбука.

Пример простейшего плейбука:

---
- name: Install and start Apache
  hosts: webservers # Целевая группа хостов
  become: yes       # Выполнять с root-правами

  tasks:
    - name: Install Apache package
      yum:         # Использование модуля yum
        name: httpd
        state: present # Убедиться, что установлен

    - name: Ensure Apache service is running and enabled
      service:     # Использование модуля service
        name: httpd
        state: started # Убедиться, что запущен
        enabled: yes   # Убедиться, что включен при запуске системы

    - name: Copy index.html
      copy:        # Использование модуля copy
        src: files/index.html # Исходный файл
        dest: /var/www/html/index.html # Место назначения
      notify: Restart Apache # При изменении файла, вызвать обработчик Restart Apache

  handlers:
    - name: Restart Apache
      service:
        name: httpd
        state: restarted