Ansible - язык автоматизации, помогающий автоматизировать и ускорить выполнение рутинных задач. Также выполняет роль описания вашей IT инфраструктуры благодаря использованию файла инвентаризации (inventory). Автоматически выполняет задачи используя Ansible Playbooks
.
Идеально подходит для реализации модели CI/CD
.
Также плюс, который выявлен в процессе использования — это то, что один раз написали Ansible Playbook
и уже потом через год не надо вспоминать, как и что вы там делали, как это иногда бывает при ручной установке чего-либо.
ansible tower
Платный фреймворк для ansible от RedHat
для управления, защиты автоматизации Ansible с использованием U
I интерфейса и RESTful API
.
Где применяется
Применить Ansible можно для реализации следующих задач:
- Выкладка приложений
- Конфигурация ОС или приложений
- Автоматизация рабочего процесса
Безагентная архитектура
Преимущество Ansible заключается в том, что не нужно на каждый управляемый сервер устанавливать какой-либо агент. Для unix-based
систем используется ssh
, а для windows
- WinRM
.
Поддерживаемые системы
Используя Ansible вы можете управлять всеми часто используемыми ОС, также некоторыми специфическими приложениями (postgresql, mysql, mssql
и т.д) или сетевым оборудованием (если написан модуль).
Модульность
Для конфигурирования или выполнения чего-либо на гостевой ОС 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
Комментарии