hanru.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),在 Debian 上默认值为 8192。当 lsyncd 监视大量文件时,请考虑提高此数字。

lsyncd_master_hostname:

主机的主机名。应为清单中的一个 inventory_hostname。只有一个主机。请参见下面的示例。

lsyncd_master_identity_file: /root/.ssh/id_rsa_lsyncd

主机上 root 用户 SSH 私钥的文件名。如果该文件不存在,将生成一个新的密钥对。

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

注意,此清单的 Ansible inventory_hostname 变量为 test1test2test3。其中一个必须是主机。我们选择 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.lsyncd
许可证
mit
下载
1.5k
拥有者