Для настройки резервного контроллера домена ALD при помощи rsync необходимо настроить аутентификацию SSH по публичным ключам. Для этого их надо сгенерировать на основном контроллере домена и поместить на резервный. Синхронизация данных будет производиться от пользователя root, поэтому генерировать ключи также нужно для пользователя root.
На основном контроллере домена выполните команды:
ssh-keygen -t rsa
ssh-ketgen -t dsa
После этого в директории /root/.ssh появятся 4 файла "id_dsa", "id_dsa.pub", "id_rsa", "id_rsa.pub". Файлы с суффиксом ".pub" - публичные ключи. Их надо скопировать на резервный сервер в такую же директорию /root/.ssh. После этого на резервном сервере нужно сформировать файл authorized_keys:
cd /root/.ssh
cat id_dsa.pub >> authorized_keys
cat id_rsa.pub >> authorized_keys
rm id_dsa.pub id rsa.pub
chmod 0600 authorized_keys
Чтобы после выхода из строя из строя основного контроллера домена возможно было продолжить работу с резервным, сервер DNS в обязательном порядке должен быть развернут на отдельной от контроллера домена машине.
В DNS должны разрешаться имена основного и резервного контроллеров домена.
Во избежание проблем с расхождением времени рекомендуется, чтобы основной и резервный контроллеры домена синхронизировались с сервером NTP, также развернутом на отдельной машине.
Клиенты DNS должны быть настроены так, чтобы они могли разрешать короткие имена хостов. Для этого в файле /etc/resolv.conf должна быть директива search.
Пример:
search example.org
Подготовка основного контроллера домена производится с помощью скрипта main-server-prepare.sh. Скрипт произведет проверку наличия необходимых для работы контроллера домена пакетов. При необходимости отсутствующие пакеты нужно установить и запустить скрипт повторно. Кроме того нужно указать короткое имя резервного сервера и интервал времени в минутах, через который служебные данные будут синхронизироваться с резервным контроллером домена. После этого на основном сервере будет создана cron-задача и скрипт для синхронизации баз данных ldap и kerberos, а также домашние директории пользователей.
Подготовка резервного контроллера домена производится с помощью скрипта secondary-server-prepare.sh. Скрипт произведет проверку наличия необходимых для работы контроллера домена пакетов. При необходимости отсутствующие пакеты нужно установить и запустить скрипт повторно. Для корректной настройки нужно указать короткое имя основного сервера и интервал времени в минутах, через который будет осуществляться проверка доступности в сети основного контроллера домена. После этого на резервном сервере будет создана cron-задача и скрипт для проверки доступности основного контроллера домена в сети. В случае, когда основной контроллер домена не доступен на резервном сервере будет выполнена подмен ip-адреса и имени, после чего будут запущены сервисы, необходимые для работы контроллера домена ALD.
apt-get install ald-server-common
ald-init init
ald-client commit-config --update-keytab
ald-client slavesrv-init
ald-client slavesrv-online
ald-client commit-config
В качестве примера рассмотрим следующее:
Имеется рабочий контроллер домена - dcm.example.org
Сервер домашних директорий - fs.example.org
Клиент - ac.example.org
Необходимо настроить резервный сервер на хосте - dcs.example.org
Настройка на dcs.example.org будет выглядеть так:
Установка серверной части ALD:
apt-get install ald-server-common
Создание необходимых баз данных:
ald-init init
Редактируем конфигурационный файл /etc/ald/ald.conf. Устанавливаем параметры:
SERVER=dcm.example.org
SERVER_ID=2 #Предполагая, что на dcm.example.org стоит по умолчанию 1.
Вводим резервный сервер в домен:
ald-client commit-config --update-keytab
Инициализируем резервный сервер:
ald-client slavesrv-init
Заменяем основной сервер dcm.example.org на резервный dcs.example.org:
На dcs.example.org выполнить команду:
ald-client slavesrv-online
На клиентских машинах fs.example.org и ac.example.org:
Отредактировать /etc/ald/ald.conf:
SERVER=dcs.example.org
Выполняем команду:
ald-client commit-config