Ответ
Для работы Ansible требуется следующая минимальная инфраструктура и настройка:
1. Управляющая машина (Control Node):
- Операционная система: Любой Linux-дистрибутив, macOS, или Windows Subsystem for Linux (WSL2). На Windows нативно Ansible не работает.
- Python: Обязательно. Требуется Python версии 3.8 или новее (рекомендуется). Поддерживается и Python 2.7, но он устарел.
- Установленный Ansible: Устанавливается через пакетный менеджер или
pip.# Для Ubuntu/Debian sudo apt update && sudo apt install -y ansible # Через pip (для получения последней версии) python3 -m pip install --user ansible
2. Управляемые узлы (Managed Nodes): Главное преимущество Ansible — отсутствие агентов. Требования к узлам:
- Доступ по SSH (для Linux/Unix) или WinRM (для Windows).
- Python интерпретатор на целевом узле. Для Linux он почти всегда предустановлен.
- Ansible автоматически копирует небольшой модуль на узел по SSH, который требует Python для выполнения.
- Если Python отсутствует, можно использовать «raw» модуль для его первоначальной установки.
3. Инвентарь (Inventory):
Файл (обычно inventory.ini или hosts), в котором перечислены все управляемые хосты, сгруппированные по необходимости.
# Пример простого инвентаря
[web_servers]
web01.example.com ansible_user=deploy
web02.example.com
[database_servers]
db01.example.com
# Группа всех серверов
[all_servers:children]
web_servers
database_servers
# Переменные можно задавать на уровне группы или хоста
[web_servers:vars]
http_port=80
4. Файлы конфигурации и плейбуков:
- Плейбук (Playbook): YAML-файл с описанием желаемого состояния узлов.
ansible.cfg: Конфигурационный файл для настройки поведения Ansible (путь к инвентарю, пользователь SSH, etc.).
Пример проверки связи (ping) со всеми хостами из инвентаря:
# Команда выполняется с управляющей машины
ansible all -i inventory.ini -m ping
Если все настроено верно, вы получите ответ pong от каждого хоста, что подтвердит работоспособность.