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

Использование Git как средства синхронизации экземпляров zabbix

Итак, в нашей среде мы используем специальную сборку Zabbix в качестве решения для мониторинга. Мы развернули Zabbix на четырех разных сайтах и ​​хотели бы убедиться, что сборка согласована на всех четырех сайтах.

Пока что у нас есть репозиторий Git, содержащий копию нашей сборки Zabbix, которая автоматически обновляется каждую ночь через cron.

Однако я бы хотел покончить с задачей cron и настроить своего рода механизм «автоматической синхронизации», согласно которому, как только кто-то выполняет git push на одном узле, все другие узлы выполняют git pull без вмешательства со стороны Пользователь.

Кто-нибудь слышал, возможно, о драйвере FUSE, который может предоставить эту функцию? или какое-то другое решение?

Спасибо!!

Предполагая, что вы выполняете голое / общее репо, довольно просто добавить обработчик post-receive для ssh на каждый сервер, cd в соответствующий каталог и запустить git pull.

#!/bin/bash

for node in $(cat nodelist)
do
    ssh $node "cd /path/do/working/directory && git pull"
done

Если вы хотите уничтожить любые изменения, которые кто-то мог внести без прохождения через git, вы можете сделать что-то вроде git fetch --all с последующим git reset --hard origin/master вместо тяги.

Некоторые другие варианты включают использование Jenkins для отслеживания изменений в репозитории и запуск задания на других узлах для обновления их рабочих каталогов или использование чего-то вроде Puppet / Chef для управления вашими конфигурациями и обновления конфигураций по мере необходимости.

может быть искриться соответствует вашим потребностям?

со своего сайта:

Как это работает?

SparkleShare создает на вашем компьютере специальную папку. Вы можете добавлять в эту папку удаленно размещенные папки (или «проекты»). Эти проекты будут автоматически синхронизироваться как с хостом, так и со всеми вашими коллегами, когда кто-то добавляет, удаляет или редактирует файл.