hanru.lsyncd

Configuraciones de Lsyncd

Estado de la Construcción

Descripción General

Este rol de Ansible configura la sincronización desde el host maestro a los hosts esclavos. El daemon Lsyncd en el maestro es responsable de la sincronización. Solo hay un maestro, mientras que puede haber más de un esclavo. También puede haber más de una fuente (en el maestro) y destino (en el esclavo) que se sincronizan.

En el maestro, el daemon lsyncd se ejecuta como root. En los esclavos, se crea un usuario dedicado lsyncd. Este usuario puede ejecutar sudo rsync para que los archivos sincronizados puedan conservar sus permisos. Al sincronizar, el root se conecta por ssh a los esclavos como el usuario lsyncd y ejecuta el comando rsync allí.

Debido a que lsyncd se ejecuta en segundo plano, se genera un par de claves SSH sin contraseña para el root en el maestro. La clave pública correspondiente se envía a cada esclavo.

En el maestro, el archivo de estado de lsyncd se encuentra en /var/lib/lsyncd/status y el registro de lsyncd se encuentra en /var/log/lsyncd.log. Debes revisar estos archivos regularmente por si hay problemas.

Este rol ha sido probado con éxito en Debian Jessie (8.x), Debian Stretch (9.x), Ubuntu Trusty (14.04) y Ubuntu Xenial (16.04).

Variables del Rol

lsyncd_inotify_max_watches: 65536

El número máximo posible de directorios que lsyncd vigila. Este es un límite del núcleo de Linux (fs.inotify.max_user_watches) que por defecto es 8192 en Debian. Considera aumentar este número cuando lsyncd esté vigilando un gran número de archivos.

lsyncd_master_hostname:

El nombre del host maestro. Debe ser uno de los inventory_hostname en el inventario. Solo hay un maestro. Ver ejemplo a continuación.

lsyncd_master_identity_file: /root/.ssh/id_rsa_lsyncd

El nombre del archivo de la clave privada SSH del usuario root en el maestro. Se generará un nuevo par de claves si el archivo no existe.

lsyncd_slave_hosts: []

Una lista de FQDN o direcciones IP de los hosts esclavos. Puede haber múltiples esclavos.

lsyncd_slave_username: lsyncd

El nombre de usuario en los esclavos que el maestro usa para iniciar sesión a través de SSH.

lsyncd_sources_and_targets: []

Una lista de fuentes en el maestro que se sincronizarán con destinos en los esclavos. Puede haber múltiples pares de fuente y destino. Ver ejemplo a continuación.

lsyncd_settings_status_interval: 10
lsyncd_sync_delay: 15

Parámetros de ajuste fino de lsyncd. No cambies estos valores a menos que sepas lo que estás haciendo.

Dependencias

Este rol no tiene dependencias.

Ejemplo de Playbook

Primero, prepara un inventario. Usamos el siguiente inventario en nuestro ejemplo.

[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

Ten en cuenta que las variables inventory_hostname de Ansible son test1, test2 y test3 para este inventario. Uno de ellos debe ser el host maestro. Elegimos test1 como nuestro maestro. Los otros dos servirán como esclavos.

Aquí tienes un ejemplo 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 }

Licencia

MIT

Referencias

Acerca del proyecto

Lsyncd Configurations

Instalar
ansible-galaxy install hanru.lsyncd
Licencia
mit
Descargas
1.5k
Propietario