Назад в блог

май 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: меньше сюрпризов, быстрее изменения и надежнее инфраструктура.