Создание Ansible Playbook'а
Структура Ansible Playbook'а
Ansible Playbook - это конфигурационный файл на основе YAML, который определяет желаемое состояние вашей инфраструктуры. Он состоит из одной или нескольких "игр" (plays), каждая из которых нацелена на определенный набор хостов и выполняет серию "задач" (tasks) на этих хостах.
Вот пример простого Ansible Playbook'а:
- hosts: all
tasks:
- name: Install Apache
apt:
name: apache2
state: present
- name: Start Apache
service:
name: apache2
state: started
В этом примере playbook нацелён на все хосты и выполняет две задачи: установку веб-сервера Apache и запуск службы Apache.
Определение хостов
Ansible использует "инвентарный" (inventory) файл для определения хостов, на которых будет выполняться ваш playbook. Инвентарный файл может быть простым текстовым файлом или динамическим скриптом, который генерирует список хостов.
Вот пример простого инвентарного файла:
[webservers]
web01 ansible_host=192.168.1.100
web02 ansible_host=192.168.1.101
[databases]
db01 ansible_host=192.168.1.200
db02 ansible_host=192.168.1.201
В этом примере инвентарный файл определяет две группы хостов: "webservers" и "databases".
Запуск Ansible Playbook'а
Для запуска Ansible Playbook'а вы можете использовать команду ansible-playbook
. Вот пример:
ansible-playbook -i inventory.txt playbook.yml
Эта команда запускает playbook, определенный в файле playbook.yml
, используя инвентарный файл inventory.txt
.
Переменные и шаблоны в Ansible
Ansible поддерживает использование переменных и шаблонов, чтобы сделать ваши playbook'и более гибкими и повторно используемыми. Вы можете определить переменные в своем playbook'е или в отдельном файле и использовать их для настройки поведения ваших задач.
Ansible также поддерживает использование шаблонов Jinja2, которые позволяют динамически генерировать конфигурационные файлы или другой контент на основе ваших переменных.
Освоив использование Ansible Playbook'ов, переменных и шаблонов, вы сможете создать мощные и масштабируемые решения автоматизации для своей инфраструктуры.