http://www.heiho.net/synctool/
WORK IN PROGRESS
Simple steps
- Setup working ssh-keys, so that you need no password or you can save the password in a ssh-agent
- ssh-copy-id -i ~/.ssh/id_rsa.pub root@10NOSPAM.11.204.75
- ssh-agent -c
- ssh-add
- ssh and rsync
- Solaris
- use the --rsync-path=/usr/pkg/bin/rsync option in rsync
- symlink ping to /sbin/ping
#
# synctool.conf
#
masterdir /var/lib/synctool
#overlaydir $masterdir/overlay
# Note that multiple overlay dirs are supported, so you can do things like
#overlaydir $masterdir/overlay-common
#overlaydir $masterdir/overlay-subcluster1
#overlaydir $masterdir/overlay-all
#
# Same goes for deletedir and tasksdir, but not for scriptdir ...
#
# these are defaults:
#deletedir $masterdir/delete
#tasksdir $masterdir/tasks
#scriptdir $masterdir/scripts
# use mode 0777 on Linux
#symlink_mode 0777
# use mode 0755 on most other Unix platforms
symlink_mode 0755
# all files in the repository must have a group extension
#require_extension yes
# make backup copies named *.saved
#backup_copies yes
# ignore all files beginning with a dot (like .profile, .bashrc, ...)
#ignore_dotfiles no
# ignore all directories beginning with a dot (like .git, .svn, ...)
ignore_dotdirs yes
# ignore specific files/directories
ignore .svn
ignore .gitignore
# log to file
logfile /var/log/synctool.log
# configure external commands that synctool uses
diff_cmd /usr/bin/diff -u
ping_cmd /sbin/ping -q -c 1 -t 1
#ping_cmd /usr/bin/fping -t 500
ssh_cmd /usr/bin/ssh -p 17 -o ConnectTimeout=10 -q
scp_cmd /usr/bin/scp -P 17 -o ConnectTimeout=10 -p
rsync_cmd /usr/pkg/bin/rsync -ar --rsync-path=/usr/pkg/bin/rsync --exclude='*.pyc' --delete -e 'ssh -p17 -o ConnectTimeout=10 -q'
synctool_cmd $masterdir/sbin/synctool.py -c $masterdir/synctool.conf
pkg_cmd $masterdir/sbin/synctool_pkg.py -c $masterdir/synctool.conf
#
# configure a package manager for synctool-pkg / dsh-pkg to use
# If you don't configure one, synctool-pkg will try to detect one
# (this is usually OK)
#
# If you do not want to detect it, choose one of the supported
# package managers:
#
#package_manager apt-get
#package_manager yum
#package_manager zypper
#package_manager pacman
#package_manager brew
#package_manager bsdpkg
# max amount of parallel processes that synctool uses on the master node
#num_proc 16
# display full paths or just '$masterdir/overlay/...'
#full_path no
# show terse output with shortened paths?
#terse yes
# colorize output? Note that colors only work for 'terse' output!
#colorize yes
# colorize the full line of output (yes) or just one word (no) ?
#colorize_full_line no
# use bright/bold attribute?
#colorize_bright yes
# specify colors
# valid values are: black, darkgray, red, green, yellow, blue,
# magenta, cyan, white, bold, default
# 'default' means that no color is used
#color_info default
#color_warn magenta
#color_error red
#color_fail red
#color_sync default
#color_link cyan
#color_mkdir blue
#color_rm yellow
#color_chown cyan
#color_chmod cyan
#color_exec green
#color_upload magenta
#color_new default
#color_type magenta
#color_dryrun default
#color_fixing default
# specify groups and nodes
# compound groups may be specified like this
group solaris primary secondary
#group test wn
#group g1 batch test wn
#
# list all nodes and their groups
# the nodename is a logical name known only to synctool
# "ipaddress:" specifies the IP address where synctool connects to
# Instead of "ipaddress:", also the older "interface:" keyword
# may be used to specify the IP address of a node
#
# The optional 'hostname:' keyword may be used to tell synctool
# the hostname of the node. This is in particular needed for specific
# cases of multi-homed setups in which synctool can not find out what
# node it is running on.
#
node node0 master
node solog1 solaris primary ipaddress:10.15.64.225
node solog2 solaris secondary ipaddress:10.15.64.226
node galog1 solaris primary ipaddress:10.11.204.75
node galog2 solaris secondary ipaddress:10.11.204.76
node bolog1 solaris primary ipaddress:10.10.8.143
node bolog2 solaris secondary ipaddress:10.10.8.145
#node node2 login ipaddress:node2-mgmt hostname:myhost2.mydomain.com
#node node3 wn ipaddress:node3-mgmt
#node node4 wn ipaddress:node4-mgmt
#node node5 wn ipaddress:node5-mgmt
#node node6 wn ipaddress:node6-mgmt
#node node7 wn ipaddress:node7-mgmt
#node node8 test ipaddress:node8-mgmt hostid:/etc/hostname.bnx0
#node node9 batch ipaddress:node9-mgmt hostid:/etc/hostname.bnx0
# ignore one or more nodes
ignore_node node0 node9
# ignore a number of groups
ignore_group test test2
#
# run command when file or directory is updated
# This is an alternative method to using .post scripts
# Note that the command on the right hand side must be a full path, or
# else the command will be looked for under scriptdir ($masterdir/scripts)
#
# The exact commands to reload system daemons are operating system dependant
# so adapt these to fit your situation
#
#on_update /etc/aliases /usr/bin/newaliases
#on_update /etc/ssh/sshd_config /etc/init.d/ssh reload
#on_update /etc/syslog-ng/syslog-ng.conf /etc/init.d/syslog-ng reload
#on_update /etc/ntp.conf /sbin/service ntp reload
#on_update /etc/logrotate.d /bin/rm -f /etc/logrotate.d/*.saved
#on_update /etc/cron.d /bin/rm -f /etc/cron.d/*.saved
#on_update /etc/cron.daily /bin/rm -f /etc/cron.daily/*.saved
#on_update /etc/init.d /bin/rm -f /etc/init.d/*.saved
# always run this command
#always_run /bin/date
# include a local synctool config file on the target node
#include /etc/synctool_local.conf
# EOB