User Tools

Site Tools


пакет_csync2

Пакет CSYNC2

Установка

Debian/Ubuntu

nodeN# apt install csync2

node1# csync2 -k /etc/csync2.key

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

Настройка

Debian/Ubuntu

nodeN# cat /etc/csync2.cfg
nossl * *;

group corpX
{
        host node1.corpX.un node2.corpX.un;
       
        auto younger;  

         key /etc/csync2.key;
         include /etc/bind/;

        action
        {
                pattern /etc/bind/*;
                exec "service bind9 restart";

                do-local;
                logfile "/var/log/csync2_action.log";
        }
}
  • Удаляем различные на узлах файлы ключей утилиты rndc
root@node1# ssh node2 rm /etc/bind/rndc.key

еще лучше:)
root@node1# ssn2 rm -r /etc/bind

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

Debian/Ubuntu

Направление с узла, на котором были изменения

nodeM# csync2 -xv

Отладка

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

nodeN# csync2 -Rvv

Do not auto-resolve conflict: Lost 'younger/older' test

node1# csync2 -M

node2# rm ...

В крайнем случае:
# rm /var/lib/csync2/node1.corpX.un.db3

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

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 · Last modified: 2023/06/19 16:03 by val