Что делает утилита Ansible?

«Что делает утилита Ansible?» — вопрос из категории Ansible, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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) и системами мониторинга.