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
变量为 test1
、test2
和 test3
。其中一个必须是主机。我们选择 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