DevOps

Ansible

Ansible це інструмент автоматизації без агентів: плейбуки на YAML налаштовують сервери та розгортають ПЗ через SSH.

Що це

Ansible створив Майкл ДеХаан у 2012 році, а згодом проєкт купила Red Hat. Він налаштовує сервери, ставить пакунки, копіює файли, запускає сервіси та оркеструє розгортання. Агентів на цільових машинах не потрібно: достатньо SSH і Python.

Робота описується в плейбуках на YAML: список задач, кожна викликає модуль (apt, copy, service, template). Задачі ідемпотентні: повторний запуск не ламає вже налаштований сервер. Список машин задається в inventory.

Ansible добре доповнює Terraform: Terraform створює сервери, Ansible налаштовує їх усередині.

Коли брати

  • Треба налаштувати багато серверів однаково й повторювано.
  • Не хочете ставити агентів на цільові машини.
  • Потрібне розгортання застосунку на VM чи bare metal.
  • Автоматизуєте мережеве обладнання чи адміністративні задачі.

Коли не варто

  • Потрібно створювати ресурси хмари із state та plan: Terraform чи OpenTofu краще.
  • Усе вже працює в контейнерах і Kubernetes, де конфігурація керується образами.

Ключові поняття

Playbook
YAML-файл із переліком задач і цільових хостів.
Module
Готова одиниця дії: встановити пакунок, скопіювати файл, запустити сервіс.
Inventory
Список хостів і груп, до яких застосовуються плейбуки.
Idempotence
Повторне виконання дає той самий результат і не робить зайвих змін.
Role
Структурований пакет задач, файлів і шаблонів для повторного використання.

Приклад

Плейбук ставить nginx і вмикає його на всіх хостах групи web.

Питання на співбесіді

  1. 1. Що означає agentless?

    На керованих серверах не потрібен постійно працюючий агент. Ansible підключається по SSH, виконує модулі й завершується. Це спрощує розгортання та знижує навантаження.

  2. 2. Що таке ідемпотентність у Ansible?

    Модуль описує бажаний стан (пакунок встановлено), а не дію. Якщо стан уже такий, нічого не змінюється. Тому плейбук можна запускати багато разів безпечно.

  3. 3. Чим Ansible відрізняється від Terraform?

    Terraform створює інфраструктуру декларативно й тримає state. Ansible налаштовує ПЗ на наявних серверах без state. Часто їх використовують разом.

Порівняння з цією технологією

Логотипи належать їхнім власникам і використані лише для ідентифікації. Іконки: Simple Icons (CC0), Devicon (MIT).

Розділи платформи