Docu review done: Wed 31 Jul 2024 02:10:06 PM CEST
csync2
Table of Content
General
csync2
is a bidirectional sync tool on file base
Installation
$ apt install csync2
Setup and initialize
First thing is, that you need an tuhentication key
$ csync2 -k /etc/csync2.key
For the transfer it selfe, you need to generate a ssl cert as well
$ openssl genrsa -out /etc/csync2_ssl_key.pem 2048
$ openssl req -batch -new -key /etc/csync2_ssl_key.pem -out /etc/csync2_ssl_cert.csr
$ openssl x509 -req -days 3600 -in /etc/csync2_ssl_cert.csr -signkey /etc/csync2_ssl_key.pem -out /etc/csync2_ssl_cert.pem
To configure csync2
a small config file /etc/csync2/csync2.cfg
is needed, where you define the hosts, keys and so on
group mycluster
{
host node1;
host node2;
key /etc/csync2.key;
include /www/htdocs;
exclude *~ .*;
}
Transfer config and certs/key to all the other nodes which are in your csync2 cluster and ensure that the service/socket is enabled and started.
$ sytstemctl enable --now csync2.socket
After the sockes are available everywhere, you can start the inintial sync.
$ csync2 -xv
Conflict handling
If csync2
detected changes during a sync by one or more hosts, you will get messages like this
While syncing file /etc/ssh/sshd_conf:
ERROR from peer site-2-host-1: File is also marked dirty here!
Finished with 1 errors.
To resolve the conflict, connect to the hosts were you know the correct file is located at and execute the following
$ csync2 -f /etc/ssh/sshd_conf
$ csync2 -x
Resetting a csync2 cluster
Resolves the following errors:
ERROR from peer 10.0.0.1: File is also marked dirty here!
Database backend is exceedingly busy => Terminating (requesting retry).
ERROR from peer 10.0.0.1: Connection closed
.
First of all, make sure that csync2
process is running.
Then connect to all servers, and update the csync2
database.
$ csync2 -cIr /
IMPORTANT only perform the next steps on the master
Go to the server with the new files or corrected state (may be master =) Get all differences between master and slaves and mark for sync
$ csync2 -TUXI
Reset database on master to winn all conflicts and sync data to all slaves
$ csync2 -fr /
$ csync2 -xr /
Connect now again to all other servers too and run to check the sync state
$ csync2 -T