Samba AD в настоящее время не поддерживает репликацию Sysvol. Для достижения этой важной функции в мульти-DC, до тех пор, пока она не будет реализована, необходимо использовать альтернативные методы для синхронизации, например решение основанное на RSYNC/OSYNC.
Действия выполняются на всех машинах участвующих в репликации
sudo apt install rsync
whereis rsync
rsync: /usr/bin/rsync /usr/share/rsync
Устанавливаем Osync
https://github.com/deajan/osync/releases
https://github.com/deajan/osync/archive/refs/tags/v1.3.tar.gz
cd ~
wget https://github.com/deajan/osync/archive/refs/tags/v1.3.tar.gz --no-check-certificate
mv ./v1.3.tar.gz ./osync_v1.3.tar.gz
tar xvf ./osync_v1.3.tar.gz
cd ./osync-1.3/
sudo bash ./install.sh
sudo nano /etc/ssh/sshd_config
PermitRootLogin yes
sudo systemctl restart ssh
sudo apt install -y ufw
sudo ufw allow ssh
Создаем ключи, чтобы можно было подключаться по SSH без пароля
sudo su
ssh-keygen -t rsa
Следующие действия выполняются на vmdc01
ssh-copy-id -i ~/.ssh/id_rsa.pub root@vmdc02.ladm.lazyadmin.ru
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host 'vmdc02.ladm.lazyadmin.ru (10.0.0.253)' can't be established.
ED25519 key fingerprint is SHA256:blablablaiamsecretkey.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@vmdc02.ladm.lazyadmin.ru's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@vmdc02.ladm.lazyadmin.ru'"
and check to make sure that only the key(s) you wanted were added.
после того как ключ скопирован на машину vmdc02, пробуем подключиться
ssh 'root@vmdc02.ladm.lazyadmin.ru'
Welcome to Ubuntu 24.04.3 LTS (GNU/Linux 6.8.0-79-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
To restore this content, you can run the 'unminimize' command.
root@vmdc02:~#
Подключились. Хорошо. Возвращаемся на vmdc01
exit
sudo cp /etc/osync/sync.conf.example /etc/osync/sync.conf
sudo nano /etc/osync/sync.conf
Меняем следующие строки
INSTANCE_ID="sysvol_sync"
## Directories to synchronize.
## Initiator is the system osync runs on. The initiator directory must be a local path.
INITIATOR_SYNC_DIR="/var/lib/samba/sysvol"
## Target is the system osync synchronizes to (can be the same system as the initiator in case of local sync tasks).
## The target directory can be a local or remote path.
TARGET_SYNC_DIR="ssh://root@vmdc02.ladm.lazyadmin.ru:22//var/lib/samba/sysvol"
## If the target system is remote, you can specify a RSA key (please use full path).
## If not defined, the default ~/.ssh/id_rsa will be used. See documentation for further information.
SSH_RSA_PRIVATE_KEY="/root/.ssh/id_rsa"
PRESERVE_ACL=true
PRESERVE_XATTR=true
SOFT_DELETE=true
DESTINATION_MAILS="your@email.com"
REMOTE_RUN_AFTER_CMD="/usr/bin/samba-tool ntacl sysvolreset"
Перед запуском сделайте копию sysvol
Пробуем запуститься в тестовом режиме
sudo /usr/local/bin/osync.sh /etc/osync/sync.conf --dry --verbose
Если выполнилось, убираем ключ -dry и запускаем еще раз
Добавляем автоматический запуск по расписанию
sudo apt install -y cron
sudo systemctl start cron
sudo systemctl enable cron
sudo crontab -e
# Silent Osync
#*/5 * * * * /usr/local/bin/osync.sh /etc/osync/sync.conf --silent
# Osync test with output to file
*/1 * * * * /usr/local/bin/osync.sh /etc/osync/sync.conf --verbose >> /var/log/osync_cron_root.log 2>&1