作業手順

ssh鍵の作成

■同期元(lsync側)操作
1.rootで鍵作成

ssh-keygen -t rsa

※同期対象のディレクトリ、ファイルの権限持っていればrootじゃなくてもOK
2.公開鍵(id_rsa.pub)の情報を確認しておく

■同期先(rsync側)操作
3.公開鍵(id_rsa.pub)の情報でauthorized_keysを作成

vi .ssh/authorized_keys

4.同期元(lsync側)から同期先(rsync側)へsshできること確認

セキュリティグループの設定

1.ポート873で通信をするため、セキュリティグループに登録する。

同期元(lsync側)の設定

1.epelをインストール

amazon-linux-extras install -y epel

2.lsyncdをインストール

yum install --enablerepo=epel lsyncd

3.lsyncd.conのバックアップを取っておく

cp -p /etc/lsyncd.conf /etc/lsyncd.conf.org

4.lsyncdの自動起動設定

systemctl enable lsyncd

5.自動起動設定の確認

systemctl is-enabled lsyncd

6.lsyncdのスタート

systemctl start lsyncd

7.lsyncd.confの設定する

vi /etc/lsyncd.conf

設定内容は下記
<>の部分を編集してね

settings{
logfile = "/var/log/lsyncd.log",
statusFile = "/tmp/lsyncd.stat",
statusInterval = 1,
}
sync{
default.rsync,
source="/var/www/vhosts/",
target="<rsync側のIP(プライベートIPでいいよ)>::vhosts",
rsync = {
archive = true,
links = true,
update = true,
verbose = false
}
}

同期先(rsync側)の設定

※Amazon Linux2の場合、rsyncdはすでにインストールされていたので、インストールについては割愛

1.xinetdをインストール

yum install xinetd

2.xinetdの自動起動設定

systemctl enable xinetd

3.自動起動設定の確認

systemctl is-enabled xinetd

4.xinetdのスタート

systemctl start xinetd

5.ディレクトリ移動

cd /etc/xinetd.d

6.rsyncを作成

vi rsync

設定内容は下記

service rsync
{
disable = no
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}

7.rsyncd.confのバックアップを取っておく

cp /etc/rsyncd.conf /etc/rsyncd.conf.org

8.rsyncd.confの設定変更

vi /etc/rsyncd.conf

設定内容は下記
<>の部分を編集してね

uid = root
gid = root
read only = no
log file = /home/slave/logs/rsyncd.log
pid file = /home/slave/logs/rsyncd.pid
port = 873
[vhosts]
path = /var/www/vhosts/
hosts allow = <lsync側のIP(プライベートIPでいいよ)>
read only = false

確認

1.lsyncd再起動

systemctl restart lsyncd

2.xinetd再起動

systemctl restart xinetd

■同期元(lsync側)操作
3.設定できているか確認

tail -f /var/log/lsyncd.log

下記のようなログが出ていれば設定完了

Tue Dec 24 15:26:22 2019 Normal: Startup of /var/www/html/ -> 10.0.1.128::html/ finished.

おまけ

lsyncdの上限ファイル数のデフォルトは8192となっている。
■確認コマンド

cat /proc/sys/fs/inotify/max_user_watches

おそらくデフォルト値は越えると思うので、最初に設定変更しておいた方がいいかも。。。

sudo cp -ip /etc/sysctl.conf /etc/sysctl.conf.org
sudo vi /etc/sysctl.conf
-> fs.inotify.max_user_watches = 819200
sudo /sbin/sysctl -p

これで再度確認コマンドを実行するとデフォルト値の100倍
819200になった