lsyncd

Конфигурации Lsyncd

Статус сборки

Обзор

Этот роль Ansible настраивает синхронизацию с мастер хоста на слейв хосты. Демон Lsyncd на мастере отвечает за синхронизацию. Существует только один мастер, в то время как может быть несколько слейвов. Также может быть несколько синхронизирующих источников (на мастере) и целей (на слейвах).

На мастере демон lsyncd работает от имени root. На слейвах создается специальный пользователь lsyncd. Этот пользователь может выполнять sudo rsync, чтобы синхронизируемые файлы могли сохранить свои права доступа. При синхронизации root заходит по ssh на слейвы как пользователь lsyncd и выполняет команду rsync.

Поскольку lsyncd работает в фоновом режиме, для root на мастере генерируется пара SSH-ключей без пароля. Соответствующий открытый ключ отправляется на каждый слейв.

На мастере файл состояния lsyncd находится по адресу /var/lib/lsyncd/status, а лог lsyncd — по адресу /var/log/lsyncd.log. Вы должны регулярно проверять эти файлы на случай возможных проблем.

Эта роль успешно протестирована на Debian Jessie (8.x), Debian Stretch (9.x) и Ubuntu Trusty (14.04), Ubuntu Xenial (16.04).

Переменные роли

lsyncd_inotify_max_watches: 65536

Максимально возможное количество директорий, которые lsyncd может отслеживать. Это ограничение ядра Linux (fs.inotify.max_user_watches), по умолчанию равное 8192 на Debian. Рассмотрите возможность увеличения этого числа, если lsyncd отслеживает большое количество файлов.

lsyncd_master_hostname:

Имя хоста мастера. Должно соответствовать одному inventory_hostname в инвентаре. Мастер только один. См. пример ниже.

lsyncd_master_identity_file: /root/.ssh/id_rsa_lsyncd

Имя файла закрытого SSH-ключа пользователя root на мастере. Если файл не существует, будет сгенерирована новая пара ключей.

lsyncd_slave_hosts: []

Список FQDN или IP-адресов слейв-хостов. Может быть несколько слейвов.

lsyncd_slave_username: lsyncd

Имя пользователя на слейвах, которое мастер использует для входа через SSH.

lsyncd_sources_and_targets: []

Список источников на мастере, которые нужно синхронизировать с целями на слейвах. Может быть несколько пар источник-цель. См. пример ниже.

lsyncd_settings_status_interval: 10
lsyncd_sync_delay: 15

Параметры тонкой настройки Lsyncd. Не изменяйте их, если не знаете, что делаете.

Зависимости

Эта роль не имеет зависимостей.

Пример плейбука

Сначала подготовьте инвентарь. Мы используем следующий инвентарь в нашем примере.

[lsyncd]
test1       ansible_host=10.0.0.1       ansible_user=root
test2       ansible_host=10.0.0.2       ansible_user=root
test3       ansible_host=10.0.0.3       ansible_user=root

Обратите внимание, что переменные inventory_hostname Ansible — это test1, test2 и test3 для этого инвентаря. Один из них должен быть мастером. Мы выбираем test1 в качестве нашего мастера. Другие два будут слейвами.

Вот пример плейбука.

- hosts: lsyncd
  vars:
    lsyncd_master_hostname: test1
    lsyncd_slave_hosts:
      - 10.0.0.2
      - 10.0.0.3
    lsyncd_sources_and_targets:
      - source: /var/www
        target: /var/www
      - source: /home
        target: /backup/home
  roles:
    - { role: hanru.lsyncd }

Лицензия

MIT

Ссылки

О проекте

Lsyncd Configurations

Установить
ansible-galaxy install hanru/ansible-lsyncd
Лицензия
mit
Загрузки
1491
Владелец