← Назад ко всем вопросам

Если в одном Playbook прописано три задачи, сколько задач он обработает

1️⃣ Как кратко ответить

Playbook выполнит все три задачи последовательно, если не произойдет ошибок, которые остановят выполнение.

2️⃣ Подробное объяснение темы

Ansible Playbook — это файл, написанный на языке YAML, который описывает набор задач для автоматизации конфигурации, развертывания и управления системами. Playbook состоит из одного или нескольких "плейов" (plays), каждый из которых содержит список задач (tasks), которые должны быть выполнены на целевых хостах.

Когда в Playbook прописано три задачи, Ansible выполнит их последовательно, одну за другой, в порядке их определения. Если одна из задач завершится с ошибкой, выполнение Playbook может быть остановлено, если не предусмотрены механизмы обработки ошибок, такие как ignore_errors: yes.

Пример простого Playbook с тремя задачами:

---
- name: Example Playbook
  hosts: all
  tasks:
    - name: Ensure Nginx is installed
      apt:
        name: nginx
        state: present
​
    - name: Start Nginx service
      service:
        name: nginx
        state: started
​
    - name: Ensure index.html is present
      copy:
        dest: /var/www/html/index.html
        content: "Hello, World!"

Объяснение кода:

  • - name: Example Playbook: Определяет начало плейбука и задает его имя для удобства идентификации.
  • hosts: all: Указывает, что задачи будут выполняться на всех целевых хостах, определенных в инвентарном файле.
  • tasks: Начало списка задач, которые будут выполнены последовательно.
  1. Первая задача:

    • name: Ensure Nginx is installed: Описание задачи, которая устанавливает Nginx.
    • apt: Модуль Ansible для управления пакетами в системах на базе Debian.
    • name: nginx: Указывает, что нужно установить пакет Nginx.
    • state: present: Указывает, что пакет должен быть установлен.
  2. Вторая задача:

    • name: Start Nginx service: Описание задачи, которая запускает сервис Nginx.
    • service: Модуль Ansible для управления системными сервисами.
    • name: nginx: Указывает, что нужно управлять сервисом Nginx.
    • state: started: Указывает, что сервис должен быть запущен.
  3. Третья задача:

    • name: Ensure index.html is present: Описание задачи, которая создает файл index.html.
    • copy: Модуль Ansible для копирования файлов на удаленные хосты.
    • dest: /var/www/html/index.html: Указывает путь, куда будет скопирован файл.
    • content: "Hello, World!": Указывает содержимое файла.

Таким образом, Playbook выполнит все три задачи последовательно, если не возникнет ошибок, которые могут остановить выполнение.

Тема: IaC / Конфигурация
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки