Ответ
Основная команда для выполнения — ansible-playbook. Вот как я обычно ее использую с различными параметрами.
Базовый запуск:
ansible-playbook site.yml
Эта команда выполнит playbook site.yml, используя inventory по умолчанию (обычно /etc/ansible/hosts).
Практические примеры с параметрами:
- С указанием кастомного inventory файла:
ansible-playbook -i inventory/prod.yml deploy_web.yml - Запуск для конкретной группы хостов или одного хоста:
ansible-playbook -i hosts.ini --limit webservers apache_install.yml ansible-playbook -i hosts.ini --limit db01.example.com mysql_config.yml - Запуск с повышенными привилегиями (sudo):
ansible-playbook -i hosts.ini --become -K system_update.yml-Kзапросит пароль для sudo. - Проверка (Dry Run) и отладка:
# Проверка без внесения изменений ansible-playbook --check --diff configure_firewall.yml # Подробный вывод для отладки ansible-playbook -vvv deploy.yml - Передача дополнительных переменных:
ansible-playbook -i staging.yml deploy.yml --extra-vars "version=2.1.4 env=staging" ansible-playbook -i prod.yml deploy.yml --extra-vars "@vars/prod_secrets.json"
Типичный рабочий процесс:
- Пишу и тестирую playbook на локальной Vagrant-машине или в staging-инвентаре.
- Запускаю с
--check --diff, чтобы увидеть планируемые изменения. - Выполняю реальный прогон.
- Для production-задач часто запускаю через AWX/Tower, что дает веб-интерфейс, логирование и контроль доступа.