Comments 8
Пример по установке nginx понятен, но лучше бы что-то более осязаемое — зачем мне нужен этот репозиторий, какие скрипты там есть, которые могут сэкономить полчаса моего времени?
Хороший вопрос! Как вы понимаете, что автор всех плагинов sparrowhub, пока я. Цель как раз привлечь новых разработчиков. И я как раз пишу плагины, исходя из своих нужд, возможно кому-то они вообще не будут полезны. Но часть плагинов достаточно универсальных, например посмотрите logdog — плагин для поиска и группировки записей в логах с учётом заданного периода времени. Штука очень полезная, и кстати сложно реализуемая в bash однострочнике, писал её на Perl, использую её у себя для аудита логов ssh сервера и анализа загрузки плагинов со sparrowhub. Подробнее про настройку logdog и использование читайте статью на blogs.perl.org. Можно ещё посмотреть stale-proc-check — плагин по отслеживанию устаревших процессов на линукс серверах, переидически сталкиваемся с этой проблемой. Есть планы попробовать начать писать плагины для автоматизации сборки докер контейнеров, думаю что по сравнению с тем же шефом и ансимблом будет гораздо дешевле и самое главное гибче, т.к. всю внутрянку пишешь как хочешь хоть на bash, хоть на perl, а не идёшь через жестко заданный DSL, что иногда очень важно. А вобще говоря, буду рад понять какие задачи есть у других, тут как бы идея в том, что одни и те же повторяемые вещи выразить через плагины и дать другим людям их использовать — повторное использование сценариев администрирования.
вот кстати свеженький плагин — docker-engine — установка docker engine на Ubuntu Trusty 14.04 (LTS). Нужна будет поддержка других платформ — пишите. Набросал за час, разбираясь с докером. (;
Приветствую! Хороший так же вопрос. Ожидаемый :)
Вот что я думаю:
1) sparrow не является альтернативой или заменой CM tools, таких как шеф или ансибл. Но вы можете использовать sparrow как для себя, для автоматизации задач на одном сервере, либо в связке с тем же шеф или ансибл для автоматизации на большом кол-ве серверов. Тот же шеф ставит Sparrow и набор плагинов ( плюс возможно доп-но конфиги к ним, что из шефа делать очень удобно кстати ) и запускает их как черные ящики, которые решают свои задачи. Те же плагины опять так же никто не мешает запускать руками, все зависит от контекста задач.
2) таким образом sparrow это больше такой клей, как принято говорить, среда разработки и запуска различных сценариев. Плагины sparrow всегда решают какую-то небольшую задачку. В то время как в CM tools базовой единицей является как правило ресурс, ( файл, пакет, сервис; впрочем в шефе есть кукбуки, в ансибле — плейбуки, но базовой, элементарной еденицей является именно ресурс ).
Иногда удобно собирать свои сценарии в терминах ресурсов ( что собственно и происходит в шефе и ансибле ), а иногда проще мыслить в терминах задач ( поставить конкретное приложение и настроить его ) — здесь область применения sparrow, т.к. в нем базовой единицей является некая решаемая задача, вся низкоуровневая логика инкапсулирована в самом плагине. Вот как можно еще на это посмотреть. Кто-то пишет плагин, никак не привязанный к конкретному CM tool.Такой плагин может быть использован как через шеф, как через ансибл, так и вручную ...
3) sparrow не привязывает вас к какому-то DSL, в шефе вы пишите на chef DSL + ruby, на ансибле на его DSL и т.д. Sparrow дает возможность выбора языка для сценариев и из коробки добавляет ряд ценных возможностей — встроенное тестирования, конфигурация, и модульность ( второстепенные, основные истории ). Фактически поэтому порого вхождения в разработке на sparrow минимален.
Обратной стороной такого подхода является более трудоемкая разработка кроссплатформенных сценариев. С другой стороны, это дает вам максимальную гибкость. Если в шефе вы упретесь в то, что базовый ресурс ( например package ) не работает по каким-то причинам ( например нет поддержки какой-нибудь OS) — вы ничего не сможете с этим поделать, вам придется просить разработчиков chef добавлять поддержку и ждать, когда это произойдет ( может не скоро ). Когда вы пишите сценарий на sparrow, вы всегда разрабатываете под ваше специфическое окружение, так как вам это нужно.
Как-то так. Извиняюсь, если получился длинный ответ, вопрос действительно важный, и в двух словах на него не ответишь.
Разработка Sparrow плагинов