- Главная
- →
- DevOps и эксплуатация
Yet Another AnsibleUI DevOps и эксплуатация
Разработчик на Python, DevOps, системный администратор.
Занимается автоматизацией проектов компании, проектом по сбору и анализу статистики.
Тезисы
Любая серьезная проектная разработка немыслима в современном IT-мире без использования систем управления конфигурациями и развертыванием. Процесс непрерывного и автоматизированного развертывания помогает существенно сократить время на выпуск готового продукта, исключить множество ошибок во время деплоя приложения. В настоящее время представлено достаточное количество систем управления конфигурациями: Chef, Puppet, Ansible и др. Доклад о том, как в компании мы проделали долгий путь, начиная от заливки кода руками, затем через ansible-скрипты и ,наконец, пришли к собственному продукту под названием AnsibleUI с богатым функционалом и полноценным UI, который мы планируем выпустить в OpenSource как одну из альтернатив платной Ansible Tower.
План нашего доклада:
* Немного рассмотрим основы работы с Ansible.
* CI/CD , Ansible или что-то еще. Проблема выбора и рекомендации.
* Рассмотрим, что лучше иметь - набор универсальных playbooks/roles с кучей конфигов или узкоспециализированные роли.
* Workflow автоматизации проекта на примере проектов нашей компании.
* Миссия нашего AnsibleUI.
* Какие решает проблемы и на что ориентирован AnsibleUI.
* Какие операции можно и какие нельзя выполнить в AnsibleUI, в сравнении с некоторыми конкурентами.
* Наши планы / ваши предложения по развитию продукта.
AnsibleUI - это созданная нами графическая оболочка и система управления развертыванием приложений, написанная на Python. AnsibleUI был создан для того, чтобы упростить и сделать более наглядным и контролируемым процесс автоматизации поставки кода и конфигурации наших сервисов. AnsibleUI позволяет:
* через графическую оболочку создавать проекты и пользователей в системе (развертывание проекта - это то, что мы автоматизируем);
* создавать и редактировать inventory-файлы с описанием переменных для разных сред;
* обновлять плейбуки, в которых описана логика процесса развертывания (сейчас в качестве источника для обновления используется git-репозиторий);
* создавать разовые и периодические задачи для выполнения плейбуков;
* отслеживать ход выполнения задач, их историю и логи;
* в системе есть API, и т.о. все операции можно выполнять через вызовы API, что удобно для интеграции с системами CI, используемыми в ваших компаниях.
В планах:
* реализация pipelines (визуализированный процесс развертывания из нескольких связанных шагов);
* интеграция с Docker, чтобы иметь возможность разворачивать собранные контейнеры;
* интеграция с облачными платформами (Amazon);
* вывести проект в OpenSource.
В настоящее время AnsibleUI активно используется в нашей компании. Мы уже автоматизировали преднастройку и тюнинг параметров ОС на production-серверах, выполнение задач по обслуживанию серверов (например, регулярные бэкапы баз), автоматизировали развертывание новых релизов внутренних сервисов компании.