Инструменты пользователя

Инструменты сайта


пакет_csync2

Пакет CSYNC2

Установка

Debian/Ubuntu

nodeN# apt install csync2

node1# csync2 -k /etc/csync2.key

node1# scp /etc/csync2.key node2:/etc/

node1# cd /etc

FreeBSD

[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/

Настройка

Debian/Ubuntu/FreeBSD

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";
        }
}
  • В linux удаляем различные на узлах файлы ключей
root@node1# ssh node2 rm /etc/bind/rndc.key

Запуск

FreeBSD

[nodeN:~] # service csync2 start

Синхронизация

Debian/Ubuntu/FreeBSD

Направление с любого узла

nodeN# csync2 -xv

Отладка

Переинициализировать базу данных после изменения csync2.cfg

Debian/Ubuntu/FreeBSD

nodeN# csync2 -Rvv

Дополнительные материалы

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.
Возможно это можно сделать и другим путем...

С уважением,
Анна.
пакет_csync2.txt · Последние изменения: 2019/04/26 11:46 — val