Ansible - язык автоматизации, помогающий автоматизировать и ускорить выполнение рутинных задач. Также выполняет роль описания вашей IT инфраструктуры благодаря использованию файла инвентаризации (inventory). Автоматически выполняет задачи используя Ansible Playbooks.

ручная работа

Идеально подходит для реализации модели CI/CD.

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

save your time

ansible tower

Платный фреймворк для ansible от RedHat для управления, защиты автоматизации Ansible с использованием UI интерфейса и RESTful API.

Где применяется

Применить Ansible можно для реализации следующих задач:

  • Выкладка приложений
  • Конфигурация ОС или приложений
  • Автоматизация рабочего процесса

Безагентная архитектура

Преимущество Ansible заключается в том, что не нужно на каждый управляемый сервер устанавливать какой-либо агент. Для unix-based систем используется ssh, а для windows - WinRM.

save your time

Поддерживаемые системы

Используя Ansible вы можете управлять всеми часто используемыми ОС, также некоторыми специфическими приложениями (postgresql, mysql, mssql и т.д) или сетевым оборудованием (если написан модуль).

multi-platform

Модульность

Для конфигурирования или выполнения чего-либо на гостевой ОС Ansible использует модули, общее количество которых более 450. Например, для настройки сети в ОС используется модуль network, а для создания и редактирования файлов - files.

Ссылка для просмотра всех модулей.

Cообщество

Сообщество Ansible активное и насчитывает большое количество сторонников данного продукта . На github можно найти множество самописных модулей и готовых playbook, заточенных под конкретные задачи.

Примеры использования

Рассмотрим немного ситуаций, где вы можете применить Ansible:

  • Допустим ситуации где вам нужно установить новое приложение или обновить старое на 100 серверах. Без использования ansible на это может уйти и пол дня, а с использование ansible минут 30.
  • Выкладка приложения с использованием нескольких этапов (компиляция, выкладка, замена файлов конфигурации) может также занимать длительное время и замедлять процесс разработки. С использованием ansible это всё можно автоматизировать и ускорить процесс разработки

Это лишь малая часть примеров где и для чего можно воспользоваться ansible, который сэкономит вам время, которое вы можете потратить на что-то более интересное, чем выполнение рутинных задач.

Установка ansible

Установка не включает в себя каких-то сложностей.

sudo pip install ansible

Установка Ansible на RHEL, CentOS или Fedora:

sudo yum install epel-release
sudo yum install ansible
sudo dnf install ansible

Установка Ansible в Ubuntu:

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install ansible