Ansible - это система управления конфигурациями, которая упрощает автоматизацию задач деплоя и управления конфигурацией серверов, без необходимости установки агентов на целевые системы.
Основные концепции
Агентная модель: Ansible использует SSH для выполнения задач на удаленных машинах (не требуется установка агентов)
Идемпотентность: Операции могут быть применены многократно без изменения конечного состояния системы
YAML-форматирование: Playbooks и конфигурации записываются в читаемом формате YAML
Инвентарь: Список целевых хостов, организованный в группы
# Запуск плейбукаansible-playbookdeploy.yml
# Запуск с ограничением на конкретные хостыansible-playbookdeploy.yml-lwebservers
# Проверка синтаксиса плейбукаansible-playbookdeploy.yml--syntax-check
# Dry-run (показать изменения без применения)ansible-playbookdeploy.yml--check
----name:Установка и настройка Nginxhosts:webserversbecome:truetasks:-name:Установка Nginxapt:name:nginxstate:presentupdate_cache:yes-name:Запуск и включение сервиса Nginxsystemd:name:nginxstate:startedenabled:yes-name:Создание корневого каталога для сайтаfile:path:/var/www/examplestate:directoryowner:www-datagroup:www-datamode:'0755'-name:Создание конфигурации виртуального хостаtemplate:src:templates/nginx-vhost.conf.j2dest:/etc/nginx/sites-available/example.confnotify:reload nginx-name:Включение сайтаfile:src:/etc/nginx/sites-available/example.confdest:/etc/nginx/sites-enabled/example.confstate:linknotify:reload nginxhandlers:-name:reload nginxsystemd:name:nginxstate:reloaded