Что такое Ansible
Тема дорожной карты · Ansible
Ansible — это платформа автоматизации IT с открытым исходным кодом, разработанная Red Hat, написанная на Python и спроектированная вокруг безагентной архитектуры: она взаимодействует с управляемыми хостами исключительно через SSH (или WinRM для Windows) — никаких демонов, клиентского программного обеспечения или специальных агентов на целевых узлах не требуется. Ansible широко используется для управления конфигурациями, развёртывания приложений, подготовки облачной инфраструктуры и оркестрации на Linux, Windows и сетевых устройствах через библиотеку тысяч идемпотентных модулей. Автоматизация выражается в понятных человеку YAML-playbook, описывающих желаемое состояние инфраструктуры; запуск ansible-playbook site.yml применяет эти объявления и сообщает, что именно изменилось. Низкий порог входа в Ansible, push-модель и большая экосистема community collection в Ansible Galaxy сделали его одним из наиболее распространённых инструментов автоматизации инфраструктуры наряду с Terraform и Chef.
Как это работает
Что такое Ansible — agentless инструмент управления конфигурацией: control-node ходит по SSH (или WinRM/local) на целевые хосты и гоняет модули, сводящие состояние. Конфиг — YAML-плейбуки; задачи зовут модули (apt, copy, service, template, user, file); модули идемпотентны — два запуска дают тот же результат. Inventory описывает таргеты; переменные параметризуют поведение. Ansible — push-based (вы триггерите с control-node); сравните с Puppet/Chef (pull-based).
Когда применять
Ansible — когда нужно настраивать существующие серверы (применять OS-настройки, деплоить приложения, управлять юзерами), не когда нужно провижионить новую cloud-инфраструктуру (Terraform лучше). Для эфемерных cattle-серверов — immutable-образы (Packer) + Terraform; Ansible хорош на долгоживущих pet. Для маленьких флотов — проще Salt/Puppet/Chef; для тысяч хостов SSH-модель может стать тесной.
Типичные ошибки
Ловушки Что такое Ansible: пишут Ansible как shell-скрипты (command: / shell: повсюду — убивает идемпотентность, используйте реальные модули); запуск плейбуков с ноута в production (нет аудита — запускайте из CI-раннера или AWX); не запиннены версии collection/role; запуск против prod без --check --diff сначала (dry-run ваш друг).
Связанные понятия
Полезные ресурсы
Проверить знания (1)
Загрузка вопросов…