Ansible

Тема дорожной карты · DevOps Engineer

Ansible — это простой инструмент автоматизации ИТ, который помогает в развертывании и поддержке приложений и систем. Используйте его для автоматизации задач, таких как развертывание кода, настройка сети и управление облаком с помощью SSH и простых команд, написанных на английском языке.

Как это работает

Ansible (Infrastructure as Code) — описание серверов, сетей, баз данных и Kubernetes-кластеров в декларативных конфиг-файлах, версионируемых в Git. Terraform (HashiCorp) читает HCL-файлы, общается с API провайдеров (AWS, GCP, Yandex Cloud, Kubernetes) и поддерживает state-файл, маппящий объявленные ресурсы на реальные ID. Ansible (Red Hat) выполняет идемпотентные playbooks по SSH для конфигурации машин. Packer строит golden images; Pulumi/CDKTF дают ту же декларативную модель на языках общего назначения. Результат — инфраструктура воспроизводимая, проходящая code review и допускающая rollback.

Когда применять

Внедряйте Ansible как только у вас больше 2–3 серверов или появилось production-окружение. Ручной ClickOps небезопасен на масштабе: нет audit trail, нет review, нет rollback. Terraform подходит для долгоживущих cloud-ресурсов (VPC, базы данных, managed Kubernetes); Ansible — для изменяемой конфигурации на существующих хостах (security patches, user accounts). Комбинируйте: Terraform provisions VM, Ansible конфигурирует её. Для самого Kubernetes предпочтите GitOps (Argo CD, Flux) запуску kubectl apply из Terraform.

Типичные ошибки

Ловушки IaC: коммит tfstate в Git (содержит секреты — используйте S3/Yandex Object Storage backend с locking); монолитные root-модули (разбейте по окружению/сервису); terraform apply с ноутбука вместо CI (нет audit trail); Ansible playbooks, которые не идемпотентны (второй запуск ломает); plaintext-секреты в HCL/YAML (используйте sops, Vault или external secret stores); игнорирование drift между кодом и реальным cloud-состоянием. Запускайте terraform plan в CI на каждом PR.

Связанные понятия

Полезные ресурсы