Назад | Перейти на главную страницу

Рекомендации по управлению точечными файлами для пользователей, использующих Puppet

Цель состоит в том, чтобы иметь набор файлов точек (.bashrc, .vimrcи т. д.) в центре города. Как только он появится, Puppet должен отправить файлы на все управляемые серверы.

Сначала я думал предоставить пользователям FTP-доступ, где они могли бы загружать свои точечные файлы, а затем иметь rsync cron работа. Однако это может быть не самое элегантное или надежное решение. Хотел узнать, есть ли у кого-нибудь рекомендации.

Есть инструмент под названием csync2. Он синхронизирует файлы на нескольких хостах в кластере.

Если вы используете марионетку, вы можете настроить своего мастера марионеток на периодическое извлечение последних точечных файлов из системы контроля версий.

На стороне контроля версий вы можете разрешить пользователям управлять своими личными точечными файлами. (Я не уверен на 100% в деталях здесь, но вы могли бы использовать, например, подмодули git и иметь дополнительный репозиторий git для каждого файла пользователей. Перед синхронизацией «основного» репозитория git вы обновляете вспомогательные репозитории.)

Затем Puppet может отправить эти файлы после синхронизации управления версиями.

Если пользователь что-то сломает, сломается только он. Затем он может обновить точечные файлы в системе контроля версий и дождаться, пока марионетка их заберет.

Предполагая, что вы используете марионеточную среду, если она сломается, она сломается только на небольшом подмножестве хостов.

Изменить: аналогичная установка может работать и с Chef.

Мой модуль марионеточных пользователей обрабатывает точечные файлы, но не имеет механизма, позволяющего пользователям определять свои. Тем не менее, вы можете захотеть взглянуть на это.

Если вы не против иметь большую единую точку отказа, центральный сервер NFS с автоматически смонтированными домашними каталогами - классический способ решить эту проблему. Таким образом, всякий раз, когда пользователь SSH подключается к новому серверу, его домашний каталог уже находится в системе.

Это решение не очень «облачно», но оно действительно хорошо работает, если вы имеете дело с большим количеством серверов в одном физическом месте.