hanru.lsyncd

Lsyncd-Konfigurationen

Build-Status

Übersicht

Diese Ansible-Rolle konfiguriert die Synchronisierung vom Master-Host zu Slave-Hosts. Der Lsyncd-Daemon auf dem Master ist verantwortlich für die Synchronisierung. Es gibt nur einen Master, während mehrere Slaves vorhanden sein können. Es kann auch mehr als eine Synchronisierungsquelle (auf dem Master) und mehrere Ziele (auf dem Slave) geben.

Auf dem Master läuft der lsyncd-Daemon als root. Auf den Slaves wird ein dedizierter lsyncd-Benutzer erstellt. Dieser Benutzer kann sudo rsync ausführen, damit die synchronisierten Dateien die Berechtigungen beibehalten können. Bei der Synchronisierung meldet sich der root per ssh als lsyncd-Benutzer auf den Slaves an und führt dort den rsync-Befehl aus.

Da lsyncd im Hintergrund läuft, wird ein passwortloses SSH-Schlüsselpaar für root auf dem Master generiert. Der entsprechende öffentliche Schlüssel wird an jeden Slave gesendet.

Auf dem Master befindet sich die lsyncd-Statusdatei unter /var/lib/lsyncd/status, das lsyncd-Protokoll unter /var/log/lsyncd.log. Sie sollten diese Dateien regelmäßig überprüfen, um mögliche Probleme zu erkennen.

Diese Rolle wurde erfolgreich auf Debian Jessie (8.x), Debian Stretch (9.x) sowie Ubuntu Trusty (14.04) und Ubuntu Xenial (16.04) getestet.

Rollenvariablen

lsyncd_inotify_max_watches: 65536

Die maximal mögliche Anzahl von Verzeichnissen, die lsyncd überwacht. Dies ist ein Limit des Linux-Kernels (fs.inotify.max_user_watches), das standardmäßig auf Debian 8192 beträgt. Ziehen Sie in Betracht, diese Zahl zu erhöhen, wenn lsyncd eine große Anzahl von Dateien überwacht.

lsyncd_master_hostname:

Der Hostname des Masters. Sollte ein inventory_hostname in der Inventarliste sein. Es gibt nur einen Master. Siehe Beispiel unten.

lsyncd_master_identity_file: /root/.ssh/id_rsa_lsyncd

Der Dateiname des privaten SSH-Schlüssels des root-Benutzers auf dem Master. Ein neues Schlüsselpaar wird generiert, wenn die Datei nicht existiert.

lsyncd_slave_hosts: []

Eine Liste von FQDN oder IP-Adressen der Slave-Hosts. Es können mehrere Slaves vorhanden sein.

lsyncd_slave_username: lsyncd

Der Benutzername auf den Slaves, mit dem sich der Master per SSH anmeldet.

lsyncd_sources_and_targets: []

Eine Liste von Quellen auf dem Master, die mit Zielen auf den Slaves synchronisiert werden sollen. Es kann mehrere Quell-Ziel-Paare geben. Siehe Beispiel unten.

lsyncd_settings_status_interval: 10
lsyncd_sync_delay: 15

Feinabstimmungsparameter für Lsyncd. Ändern Sie diese nicht, es sei denn, Sie wissen, was Sie tun.

Abhängigkeiten

Diese Rolle hat keine Abhängigkeiten.

Beispiel-Playbook

Zuerst bereiten Sie ein Inventory vor. Wir verwenden das folgende Inventory in unserem Beispiel.

[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

Beachten Sie, dass die Ansible-inventory_hostname-Variablen test1, test2 und test3 für dieses Inventory sind. Einer von ihnen muss der Master-Host sein. Wir wählen test1 als unseren Master. Die anderen beiden dienen als Slaves.

Hier ist ein Beispiel-Playbook.

- 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 }

Lizenz

MIT

Referenz

Über das Projekt

Lsyncd Configurations

Installieren
ansible-galaxy install hanru.lsyncd
GitHub Repository
Lizenz
mit
Downloads
1.5k
Besitzer