This is an old revision of the document!
nodeN# apt install csync2 node1# csync2 -k /etc/csync2.key node1# scp /etc/csync2.key node2:/etc/ node1# cd /etc
[nodeN:~] # pkg install csync2 [nodeN:~] # cat /etc/rc.conf
... csync2_enable=yes
[node1:~] # csync2 -k /usr/local/etc/csync2.key [node1:~] # scp /usr/local/etc/csync2.key node2:/usr/local/etc/ [node1:~] # cd /usr/local/etc/
nodeN# cat csync2.cfg
nossl * *;
group corpX
{
host node1.corpX.un node2.corpX.un;
auto younger;
##### Debian/Ubuntu
key /etc/csync2.key;
include /etc/bind/;
##### FreeBSD
# key /usr/local/etc/csync2.key;
# include /usr/local/etc/namedb/named.conf;
# include /usr/local/etc/namedb/master/;
action
{
##### Debian/Ubuntu
pattern /etc/bind/*;
exec "service bind9 restart";
##### FreeBSD
# pattern /usr/local/etc/namedb/master/*;
# exec "service named restart";
do-local;
logfile "/var/log/csync2_action.log";
}
}
root@node1# ssh node2 rm /etc/bind/rndc.key
[nodeN:~] # service csync2 start
Направление с любого узла
nodeN# csync2 -xv
nodeN# csync2 -Rvv
node1# csync2 -M node2# rm ...
1. Установить
2. Сгенерировать ключи
# openssl genrsa -out /usr/local/etc/csync2_ssl_key.pem 1024
# openssl req -new -key /usr/local/etc/csync2_ssl_key.pem -out /usr/local/etc/csync2_ssl_cert.csr
# openssl x509 -req -days 600 -in /usr/local/etc/csync2_ssl_cert.csr -singkey /usr/local/etc/csync2_ssl_key.pem -out /usr/local/etc/csync2_ssl_cert.pem
# csync2 -k /usr/local/etc/csync2.cluster.key
3. Скопировать на все узлы. Я копировала все 4 файла.
4. Создать конфиг /usr/local/etc/csync2.cfg:
# Csync2 Example Configuration File
# ---------------------------------
#
# Please read the documentation:
# http://oss.linbit.com/csync2/paper.pdf
group all
{
host gate1.corp9.un gate2.corp9.un;
key /usr/local/etc/csync2.cluster.key;
include /usr/local/etc/csync2.cfg;
include /usr/local/etc/csync2.test;
include /usr/local/etc/vip-up.sh;
include /usr/local/etc/vip-down.sh;
include /usr/local/etc/dhcpd.conf;
include /usr/local/etc/dhcpd.general;
include /usr/local/etc/smb.conf;
include /usr/local/etc/apache22;
include /usr/local/etc/ha.d;
include /etc/resolv.conf;
include /etc/pf.conf;
include /etc/namedb;
include /etc/crontab;
# include %homedir%/bob;
# exclude %homedir%/bob/temp;
# exclude *~ .*;
#
action
{
pattern /usr/local/etc/apache22/httpd.conf;
pattern /usr/local/etc/apache22/extra/*;
exec "/usr/local/sbin/apachectl graceful";
logfile "/var/log/csync2_action.log";
do-local;
}
#
action
{
pattern /etc/pf.conf;
exec "/etc/rc.d/pf reload";
logfile "/var/log/csync2_action.log";
do-local;
}
action
{
pattern /usr/local/etc/dhcp.conf;
pattern /usr/local/etc/dhcp.general;
exec "/usr/local/etc/rc.d/isc-dhcpd restart";
logfile "/var/log/csync2_action.log";
do-local;
}
action
{
pattern /etc/namedb/*;
exec "/etc/rc.d/named restart";
logfile "/var/log/csync2_action.log";
do-local;
}
action
{
pattern /usr/local/etc/smb.conf;
exec "/usr/local/etc/rc.d/samba restart";
logfile "/var/log/csync2_action.log";
do-local;
}
# backup-directory /var/backups/csync2;
# backup-generations 3;
#
auto younger;
}
#
# prefix homedir
# {
# on host[12]: /export/users;
# on *: /home;
# }
5. В rc.conf добавить:
csync2_enable=yes
6. Запустить
# /usr/local/etc/rc.d/csync2 start
7. Запустить вручную синхронизацию:
# csync2 -xv
ПРИМЕЧАНИЕ!
При параметре auto younger в конфигурационном файле, необходимо учитывать, что при синхронизации приоритет имеет более "молодой" файл. При запуске команды csync2 -xvv будут появляться ошибки. Сменить приоритет можно следующей командой:
# csync2 -f /путь/имя_файла
После запуска этой команды ошибки исчезнут и синхронизация пройдет успешно.
Также надо учитывать, что при изменении хостов в конфигурационном файле, надо удалять файл базы данных csync2, находящийся здесь:
/var/db/csync2/gate1.corp9.un.db.
Возможно это можно сделать и другим путем...
С уважением,
Анна.