Когда-то был проект Gentoo Enterprise Management System, но, по всей видимости, он умер.
Всё, что нахожу - это или морально устаревшие документы 2003 года, или наборы костыльных скриптов, которые или старые, или слишком узконаправленные (читать «много хардкода»).
Наткнулся на интересную переписку по этой теме (всем заинтересованным читать, там немало интересных вещей, ИМХО).
Мне хотелось бы заполучить в руки инструмент для удобного управления не одним десятков серверов под управлением Gentoo, чтобы не распылятся на рутину, но в тоже время не терять гибкости Gentoo для каждой отдельной инсталляции.
Каким я себе представляю этот интструмент:
Пршу прощения за сумбурное изложение, но пока это не полноценное ТЗ
- Web-интерфейс / консольный клиент
- Наличие клиентских агентов или управление через SSH, логинимся под учёткой специального пользователя, для которого настроен sudo (за логин под рутом надо отстреливать яйца)
- Отчёты по e-mail/RSS(Atom) об доступных обновлениях (что-то вроде вывода emerge -pvuDN world)
- Конфигурирование на клиентах периодического обновления Portage (через крон eix-update?)
- Важный пункт: опциональная настройка distcc с кросс-компилированием. Поскольку такой проект затребован, только когда серверов становится больше 3-10, то почему бы не использовать ресурсы простаивающих серверов (или на которых небольшая нагрузка)? Можно обратить внимание на перечисленные снизу проекты. Для Ъ:
- ccache - caches compiler output to accelerate builds.
- dmucs - helps distcc select appropriate servers.
- ccontrol - gives centralized control of parallelism, caching and distribution even while the build is running.
- crosstool - automates building cross-compilation toolchains.
- distccWebView - is a CGI to show which of your servers are up and running.
- tcpbalance - is a load-balancing TCP proxy written in Erlang that works well with distcc.
- Управление USE-флагами, с возможностью добавления комментариев к каждому флагу. При >10 инсталляций Gentoo проблематично помнить, почему был поставлен тот или иной флаг на конкретном сервере. Именно, не что он собой представляет, а зачем его поставили, какая мотивация была.
- Удобный интерфейс для доступа к спискам замаскированных/размаскированных пакетов, установки глобальных и локальных USE-флагов, управления принятыми лицензиями (package.license), вывода списка хостов, у которых (не)совпадают маскировки/USE-флаги указанных пакетов. Опять же - опциональные комментарии к каждой или к группе записей.
- Интерфейс к etc-update/dispatch-conf. Причём, если на одном хосте уже были одобрены изменения, то на другом хосте идентичные изменения помечаются в интерфейсе, что позволит сократить время на апдейт множества серверов, и даже написать утилиты множественного апдейта, когда специально помеченные изменения на одном хосте автоматом примутся на остальных при условии их идентичности.
Язык можно обговорить отдельно.
Здесь есть немало гентушников. Очень хотелось услышать мнение каждого из вас.