作業手順
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になった