hanru.lsyncd

Konfiguracje Lsyncd

Status budowy

Przegląd

Ta rola Ansible konfiguruje synchronizację z hosta master do hostów slave. Demon Lsyncd na masterze odpowiada za synchronizację. Jest tylko jeden master, podczas gdy może być więcej niż jeden slave. Mogą również być źródła (na masterze) i cele (na slave) do synchronizacji.

Na masterze, demon lsyncd działa jako root. Na slave'ach tworzony jest dedykowany użytkownik lsyncd. Użytkownik ten ma uprawnienia do wykonywania sudo rsync, dzięki czemu synchronizowane pliki mogą mieć zachowane uprawnienia. Podczas synchronizacji, root łączy się z slave'ami jako użytkownik lsyncd i wykonuje tam polecenie rsync.

Ponieważ lsyncd działa w tle, dla roota na masterze generowany jest bezhasłowy klucz SSH. Odpowiedni klucz publiczny jest wysyłany do każdego slave'a.

Na masterze plik statusu lsyncd znajduje się w /var/lib/lsyncd/status, a logi lsyncd w /var/log/lsyncd.log. Powinieneś regularnie sprawdzać te pliki w przypadku ewentualnych problemów.

Ta rola była pomyślnie testowana na Debian Jessie (8.x), Debian Stretch (9.x) oraz Ubuntu Trusty (14.04), Ubuntu Xenial (16.04).

Zmienne roli

lsyncd_inotify_max_watches: 65536

Maksymalna liczba katalogów, które lsyncd obserwuje. Jest to limit jądra Linux (fs.inotify.max_user_watches), który domyślnie wynosi 8192 na Debianie. Rozważ zwiększenie tej liczby, gdy lsyncd obserwuje dużą liczbę plików.

lsyncd_master_hostname:

Nazwa hosta master. Powinna być jednym z inventory_hostname w inwentarzu. Jest tylko jeden master. Zobacz przykład poniżej.

lsyncd_master_identity_file: /root/.ssh/id_rsa_lsyncd

Nazwa pliku prywatnego klucza SSH użytkownika root na masterze. Nowa para kluczy zostanie wygenerowana, jeśli plik nie istnieje.

lsyncd_slave_hosts: []

Lista FQDN lub adresów IP hostów slave. Może być wielu slave'ów.

lsyncd_slave_username: lsyncd

Nazwa użytkownika na slave'ach, którego master używa do logowania się przez SSH.

lsyncd_sources_and_targets: []

Lista źródeł na masterze, które mają być synchronizowane z celami na slave'ach. Może być wiele par źródło-cel. Zobacz przykład poniżej.

lsyncd_settings_status_interval: 10
lsyncd_sync_delay: 15

Parametry dostrajania Lsyncd. Nie zmieniaj ich, chyba że wiesz, co robisz.

Zależności

Ta rola nie ma zależności.

Przykład Playbooka

Najpierw przygotuj inwentarz. W naszym przykładzie używamy następującego inwentarza.

[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

Zauważ, że zmienne Ansible inventory_hostname to test1, test2 i test3 dla tego inwentarza. Jeden z nich musi być hostem master. Wybieramy test1 jako nasz master. Pozostałe dwa będą działać jako slave.

Oto przykład playbooka.

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

Licencja

MIT

Referencje

O projekcie

Lsyncd Configurations

Zainstaluj
ansible-galaxy install hanru.lsyncd
Licencja
mit
Pobrania
1.5k
Właściciel