AWS модули

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

Работа Ansible с AWS обеспечивается collection amazon.aws, предоставляющей модули для управления всем спектром сервисов AWS, включая EC2, S3, VPC, IAM, RDS и ELB, непосредственно из playbook. Модуль amazon.aws.ec2_instance, например, может идемпотентно подготавливать, запускать, останавливать или завершать работу EC2-инстансов, тогда как amazon.aws.s3_object выполняет операции с бакетами без использования AWS CLI. Ansible с AWS устанавливается вместе с основным пакетом командой ansible-galaxy collection install amazon.aws, а аутентификация выполняется через переменные окружения (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) или IAM instance profile, без хранения учётных данных в playbook. Сочетание AWS-модулей Ansible со скриптами динамического inventory из той же collection позволяет playbook автоматически нацеливаться на только что подготовленные инстансы по тегам без ручного обновления inventory.

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

AWS модули использует cloud-специфичные модули для создания cloud-ресурсов (VM, сети, S3-бакеты, DNS). Модули для AWS (amazon.aws), Yandex Cloud (yandex.cloud), Azure (azure.azcollection), GCP (google.cloud), Kubernetes (kubernetes.core). Ansible может быть и IaC, и инструментом конфигурации ("provision и configure"). Сообщество обычно предпочитает Terraform для provisioning + Ansible для конфигурации — разделение ответственности.

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

Ansible для provisioning — только на маленьких + динамичных нагрузках, где Terraform тяжёл. В большинстве случаев Terraform создаёт VM + выводит inventory, потом Ansible конфигурирует (типичный pipeline). add_host — для добавления свежесозданных хостов в inventory посреди play. Dynamic inventory-плагины — вместо ручных списков для облака.

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

Ловушки AWS модули: Ansible для provisioning без эквивалента state-файла (не видно, что существует — Terraform трекает); resource-drift между запусками (Ansible сводит, но не enforce "удалить то, чего быть не должно"); дыры в идемпотентности некоторых cloud-модулей (двойной запуск создаёт два ресурса из-за неверного lookup key).

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

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