hanru.lsyncd

Lsyncdの設定

ビルドステータス

概要

このAnsibleロールは、マスターホストからスレーブホストへの同期を設定します。マスター上のLsyncdデーモンが同期を担当します。マスターは1つだけですが、スレーブは複数存在することができます。また、マスター上の同期元とスレーブ上の同期先も複数指定できます。

マスター上では、lsyncdデーモンはrootとして実行されます。スレーブ上には専用のlsyncdユーザーが作成されます。このユーザーはsudo rsyncを実行することができ、同期されたファイルの権限を保持します。同期する際には、rootはlsyncdユーザーとしてスレーブにSSH接続し、そこで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の1つである必要があります。マスターは1つだけです。以下の例を参照してください。

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です。そのうちの1つがマスターホストである必要があります。test1をマスターとして選択します。他の2つはスレーブとして機能します。

以下は例のプレイブックです。

- 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
所有者