csync2 на CentOS7
Установка из репозитория:
Install the EPEL repository, you may try typing yum install epel-release
. I think at least Centos 7 has it out of the box.
Install the okay-release RPM. Type:
Centos 6 on 32 bits: rpm -ivh http://repo.okay.com.mx/centos/6/i386/release/okay-release-1-1.noarch.rpm
Centos 6 on 64 bits: rpm -ivh http://repo.okay.com.mx/centos/6/x86_64/release/okay-release-1-1.noarch.rpm
Centos 7 on 64 bits: rpm -ivh http://repo.okay.com.mx/centos/7/x86_64/release/okay-release-1-1.noarch.rpm
yum install xinetd csync2
Установка из исходников:
yum -y install epel-release yum -y groupinstall "Development Tools" yum -y install librsync-devel yum -y install gnutls-devel yum -y install sqlite-devel cd /usr/local/src wget http://oss.linbit.com/csync2/csync2-2.0.tar.gz tar -xz -f ./csync2-2.0.tar.gz && cd csync2-2.0/ ./configure --prefix='/usr/local/csync2' make make install ln -s /usr/local/csync2/sbin/* /sbin/ ln -s /usr/local/csync2/etc/csync2.cfg /etc mkdir /usr/local/csync2/backups
Настройка
На одном сервере генерируем сертификаты и копируем на все ноды:
cd /usr/local/csync2/etc openssl genrsa -out csync2_ssl_key.pem 1024 openssl req -new -key csync2_ssl_key.pem -out csync2_ssl_cert.csr openssl x509 -req -days 600 -in csync2_ssl_cert.csr -signkey csync2_ssl_key.pem -out csync2_ssl_cert.pem csync2 -k /etc/csync2.cluster.key scp ./csync2_* root@node2:/usr/local/csync2/etc/ scp /etc/csync2.cluster.key root@node2:/etc/csync2.cluster.key
Пример минимального конфига /etc/csync2.cfg
group all { host gw gw1; key /etc/csync2.cluster.key; backup-directory /usr/local/csync2/backups; backup-generations 3; auto younger; include /usr/local/csync2/etc/csync2.cfg; include /tmp/1; action { pattern /tmp/11/*; exec "/etc/init.d/nginx reload"; logfile "/var/log/csync2.log"; } }
Добавляем в xinetd
файл /etc/xinetd.d/csync2
# default: on # description: csync2 service csync2 { flags = REUSE socket_type = stream wait = no user = root group = root server = /usr/local/csync2/sbin/csync2 server_args = -i -l #log_on_failure += USERID disable = no # only_from = 192.168.199.3 192.168.199.4 }
Проверим наличие сервиса в /etc/services
# cat /etc/services | grep csync2 csync2 30865/tcp
Запускаем
systemctl restart xinetd
Проверяем
csync2 -xvd
Добавляем в cron /etc/cron.d/csync2
PATH=/sbin:/usr/sbin:/bin:/usr/bin #m h dom mon dow user command */10 * * * * root date +%Y-%m-%d\ %H\:%M >> /var/log/csync2.log; /sbin/csync2 -xv >> /var/log/csync2.log 2>&1
Ротация лога:
/etc/logrotate.d/csync2
/var/log/csync2.log { missingok notifempty rotate 2 size 100k }