hanru.lsyncd

Configurations de Lsyncd

Statut du Build

Aperçu

Ce rôle Ansible configure la synchronisation de l'hôte master vers l'hôte(s) slave. Le démon Lsyncd sur le master est responsable de la synchronisation. Il n'y a qu'un seul maître, tandis qu'il peut y avoir plusieurs esclaves. Il peut également y avoir plusieurs sources (sur le master) et cibles (sur les esclaves) à synchroniser.

Sur le master, le démon lsyncd s'exécute en tant que root. Sur les esclaves, un utilisateur lsyncd dédié est créé. Cet utilisateur peut exécuter sudo rsync afin que les fichiers synchronisés conservent leurs permissions. Lors de la synchronisation, root se connecte par SSH sur les esclaves en tant qu'utilisateur lsyncd et exécute la commande rsync là-bas.

Comme lsyncd fonctionne en arrière-plan, une paire de clés SSH sans mot de passe est générée pour root sur le master. La clé publique correspondante est envoyée à chaque esclave.

Sur le master, le fichier d'état de lsyncd se trouve à /var/lib/lsyncd/status, et le journal lsyncd est situé à /var/log/lsyncd.log. Vous devriez vérifier régulièrement ces fichiers en cas de problèmes éventuels.

Ce rôle a été testé avec succès sur Debian Jessie (8.x), Debian Stretch (9.x), Ubuntu Trusty (14.04) et Ubuntu Xenial (16.04).

Variables du Rôle

lsyncd_inotify_max_watches: 65536

Le nombre maximal de répertoires que lsyncd surveille. Il s'agit d'une limite du noyau Linux (fs.inotify.max_user_watches) qui est de 8192 par défaut sur Debian. Envisagez d'augmenter ce nombre quand lsyncd surveille un grand nombre de fichiers.

lsyncd_master_hostname:

Le nom d'hôte du master. Doit être un inventory_hostname dans l'inventaire. Il n'y a qu'un seul master. Voir l'exemple ci-dessous.

lsyncd_master_identity_file: /root/.ssh/id_rsa_lsyncd

Le nom du fichier de la clé privée SSH de l'utilisateur root sur le master. Une nouvelle paire de clés sera générée si le fichier n'existe pas.

lsyncd_slave_hosts: []

Une liste de FQDN ou d'adresses IP des hôtes esclaves. Il peut y avoir plusieurs esclaves.

lsyncd_slave_username: lsyncd

Le nom d'utilisateur sur les esclaves que le master utilise pour se connecter via SSH.

lsyncd_sources_and_targets: []

Une liste de sources sur le master à synchroniser avec des cibles sur les esclaves. Il peut y avoir plusieurs paires de sources et de cibles. Voir l'exemple ci-dessous.

lsyncd_settings_status_interval: 10
lsyncd_sync_delay: 15

Paramètres d'ajustement fin de Lsyncd. Ne changez pas ces valeurs à moins de savoir ce que vous faites.

Dépendances

Ce rôle n'a pas de dépendances.

Exemple de Playbook

Préparez d'abord un inventaire. Nous utilisons l'inventaire suivant dans notre exemple.

[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

Notez que les variables inventory_hostname d'Ansible sont test1, test2 et test3 pour cet inventaire. L'un d'eux doit être l'hôte master. Nous choisissons test1 comme notre master. Les deux autres serviront d'esclaves.

Voici un exemple de 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 }

Licence

MIT

Références

À propos du projet

Lsyncd Configurations

Installer
ansible-galaxy install hanru.lsyncd
Licence
mit
Téléchargements
1.5k
Propriétaire