май 2026 г. · 6 мин. чтения
Ansible и IaC
Практичное введение в Ansible, базовые принципы IaC и минимальный playbook, который можно запустить сразу.
Когда серверы настраиваются вручную, со временем появляется дрейф конфигурации: где-то нет нужного пакета, где-то устарел конфиг, а окружения начинают вести себя по-разному.
Ansible решает эту проблему: описывает инфраструктуру в коде и приводит все хосты к одинаковому целевому состоянию.
Что такое Ansible?
Ansible - это инструмент автоматизации, который подключается к серверам по SSH и выполняет задачи из YAML-playbook.
Главная цель:
- один раз описать целевое состояние,
- применять его одинаково на всех серверах,
- уменьшить ручную работу и ошибки.
IaC в одном предложении
Infrastructure as Code (IaC) - это когда настройка инфраструктуры хранится в версионируемых файлах, а не в ручных, недокументированных шагах.
Что это дает:
- повторяемость,
- прозрачность изменений,
- проще onboarding для команды,
- безопаснее вносить изменения через review.
Базовые элементы Ansible
- Inventory: список хостов и групп.
- Modules: готовые операции (
apt,service,copy,user). - Playbook: последовательность задач в YAML.
- Идемпотентность: повторный запуск безопасен, меняется только то, что действительно нужно.
Простой базовый пример
Минимальный пример, который устанавливает Nginx и запускает сервис на Ubuntu-серверах.
# inventory.ini
[web]
web-1 ansible_host=192.168.56.21 ansible_user=ubuntu
web-2 ansible_host=192.168.56.22 ansible_user=ubuntu
# webserver.yml
- name: Configure web servers
hosts: web
become: true
tasks:
- name: Install Nginx
ansible.builtin.apt:
name: nginx
state: present
update_cache: true
- name: Ensure Nginx is running
ansible.builtin.service:
name: nginx
state: started
enabled: true
Запуск:
ansible-playbook -i inventory.ini webserver.yml
Где Ansible особенно силен
- базовая конфигурация серверов,
- управление пакетами и сервисами,
- массовый rollout конфигов,
- регулярные задачи поддержки,
- простые деплои и operational runbooks.
Итог
Ansible особенно хорош, когда нужна стабильная и предсказуемая эксплуатация без лишней сложности. Вы описываете инфраструктуру один раз, храните в Git и применяете повторяемо.
Практическая ценность Ansible + IaC: меньше сюрпризов, быстрее изменения и надежнее инфраструктура.