Ответ
Ansible — это инструмент автоматизации для управления конфигурацией, развертывания приложений и оркестрации инфраструктуры. Он реализует подход "Infrastructure as Code" (IaC).
Ключевые возможности:
- Управление конфигурацией: Декларативная настройка серверов через YAML-плейбуки.
- Оркестрация: Последовательное или параллельное выполнение задач на группах серверов (хостах).
- Развертывание приложений: Автоматизация деплоя кода и зависимостей.
- Идемпотентность: Гарантирует, что повторный запуск плейбука приводит систему в одно и то же целевое состояние.
- Агентная архитектура: Работает через SSH (Linux/Unix) или WinRM (Windows), не требует установки специального ПО на управляемые узлы.
Пример базового плейбука для установки Nginx:
---
- name: Install and start Nginx
hosts: web_servers
become: yes
tasks:
- name: Ensure Nginx package is installed
apt:
name: nginx
state: present
update_cache: yes
- name: Ensure Nginx service is started and enabled
service:
name: nginx
state: started
enabled: yes
Ansible имеет обширную коллекцию модулей для работы с облачными провайдерами (AWS, Azure, GCP), контейнерами (Docker, Podman), оркестраторами (Kubernetes) и системами мониторинга.