В предыдущих статьях мы познакомились с Terraform и научились описывать инфраструктуру как код. Terraform может создать виртуальную машину, сеть, диски и другие ресурсы в облаке. Но создание сервера — только начало.
После запуска виртуальной машины на ней ещё нет необходимого приложения, пользователей, конфигурационных файлов и настроенных служб. Всё это можно установить и настроить вручную, подключившись к серверу по SSH. Проблема появляется, когда серверов становится больше одного.
Одним из наиболее распространённых инструментов для этой задачи является Ansible.
В этой статье разберём Ansible от базовых принципов до его использования в современной инфраструктуре. Начнём с архитектуры Control Node и Managed Nodes, разберём подключение по SSH, Inventory, YAML-синтаксис, Modules, Playbooks и Ad-hoc-команды. Отдельно рассмотрим один из ключевых принципов Ansible — идемпотентность.