30 июля 2020 г.

Горячий резерв ALD

Так как в Astra Linux сервис ALD не имеет возможности штатного горячего резервирования, то пришлось из г0вна и палок мастерить свое.


Резервный сервер ALD должен иметь такое же имя, как и сервер домена, а также иметь такие же установленные пакеты. Обязательно проверить, чтобы резервный сервер не определяться по имени или по ip адресу, иначе возможны перебои в работе сервиса ALD на основном сервере и на клиентах.
 
Необходимо учесть, что в сети должен быть сервер домашних каталогов, расположенный отдельно, либо переносить домашние каталоги, но это материал другой статьи.

Необходимо настроить авторизацию по ключу, для этого создать ключ на основном сервере домена (если еще не делали этого), командой

ssh-keygen 

Подтвердить клавишей enter все запросы, пароль не вводить.

Далее необходимо скопировать данный ключ на резервный сервер командой
ssh-copy-id <USERNAME>@<ipreserv>
Где <ipreserv> - ip адрес резервного сервера, <USERNAME> - имя локального пользователя.

На основном сервере домена создать файл ald-reserv.sh следующего содержания
#!/bin/bash
#Задаем переменные и создаем каталог, если его нет
Data=`date +%Y-%m-%d`
ipreserv=x.x.x.x # указать ip резервного сервера
mkdir -p /DATA/ald-reserv/
Dir=/DATA/ald-reserv
chown <USERNAME> $Dir

# Создаем резервные копии ALD
ald-init backup --data-archive=$Dir/$Data-data.tar.gz —key-archive=$Dir/$Data-key.tar.gz
cp /var/lib/ald/aldd.keytab $Dir/

#Отправляем бекапы ald на резервный сервер ald
scp -r $Dir <USERNAME>$ipreserv:/DATA/
#Восстанавливаем бекапы на резервном сервере
ssh <USERNAME>@$ipreserv "sudo cp $Dir/aldd.keytab /var/lib/ald/ && sudo chown aldd:aldd /var/lib/ald/aldd.keytab
ssh <USERNAME>@$ipreserv "sudo /usr/sbin/ald-init stop -f && sudo /usr/sbin/ald-init restore-backup --data-archive=$Dir/$Data-data-ald.tar.gz --key-archive=$Dir/$Data-key-ald.tar.gz -f && sudo /usr/sbin/ald-init start -f"

Выдать права на исполнение командой
chmod a+x /path/to/script

И добавить в crontab суперпользователя команду запуска
0 21 * * * /path/to/script

В случае, если основной сервер домена вышел из строя, то на сервере резервного домена поменять IP адрес на адрес сервера основного домена, вышедшего из строя, затем перезагрузить клиенты, либо перезапустить службу aldd (systemctl restart aldd) на всех клиентах.

Комментариев нет:

Отправить комментарий