Используемые термины: FreeIPA .
В создании резервной копии FreeIPA мало нюансов и сложностей. А вот при восстановлении они есть. Мы рассмотрим простую процедуру создания архива для каталога и его служб, а также процесс восстановления сервиса.
Создаем резервную копию
Восстановление
Подготовка системы
Выполнение ipa-restore
Проверка системы после восстановления
Решение проблем
Создание резервной копии выполняется встроенным методом (команда ipa-backup). Рассмотрим пример ее использования.
Имейте ввиду, что в процессе создания полной копии система останавливает IPA services. Поэтому запускать процесс стоит в нерабочее время.
Лучше всего, выполнять полное архивирование на сервере с CRL generation master. Найти его можно, выполнив команду:
ipa-crlgen-manage status
Сервер, на котором запущена данная роль должен вернуть ответ:
CRL generation: enabled
* Данный вопрос остается на выборе системного администратора. CRL generation master можно и назначить на любой реплике. А можно делать бэкап на всех репликах FreeIPA.
И так, резервную копию можно создать командой:
ipa-backup
* при запуске данной команды без параметров, будет создана полная копия каталога и его настроек. Такая копия может быть использована для восстановления каталога в случае нарушения его работы. Также можно сделать копию данных с помощью опции —data — это удобно для восстановления случайно удаленной информации.
** команда ipa-backup -h покажет нам полный набор возможностей. В нашем примере мы ограничимся созданием полной копии.
Мы должны увидеть вывод команды на подобие этого:
Preparing backup on ipa.remontka.local
Local roles match globally used roles, proceeding.
Stopping IPA services
Backing up ipaca in remontka-LOCAL to LDIF
Backing up userRoot in remontka-LOCAL to LDIF
Backing up remontka-LOCAL
Backing up files
Starting IPA service
Backed up to /var/lib/ipa/backup/ipa-full-2021-09-27-12-22-42
The ipa-backup command was successful
* как видим, наша копия создана в каталоге /var/lib/ipa/backup/ .
Как и говорилось выше, процесс создания резерва, относительно, понятен и прост. Перейдем к процессу восстановления.
Мы рассмотрим процедуру в два этапа на примере полного восстановления службы каталогов. Сначала мы выполним подготовительные действия, после саму команду для восстановления.
Для успешного восстановления службы каталогов необходимо:
Приступим.
1. Смотрим информацию о резервной копии.
Для этого переходим в каталог с резервной копией. В нем будет файл header — смотрим его содержимое:
cat header
Мы должны увидеть что-то на подобие:
[ipa]
type = FULL
time = 2021-09-27T09:20:14
host = ipa.remontka.local
ipa_version = 4.9.2
version = 1
services = KDC,KPASSWD,HTTP,OTPD,KEYS,CA,DNS,DNSKeySync
* где для нас очень важны:
После сбора сведений, идем дальше.
2. Установка ipa-server.
Проще всего, установку выполнить из репозитория.
а) для Rocky Linux / CentOS 8:
dnf install @idm:DL1
dnf install ipa-server
* первая команда установит модуль DL1 Stream-репозитория. Вторая — сам freeipa.
б) для CentOS 7:
yum install ipa-server
Подробнее процедура описана в инструкции Установка и использование FreeIPA на CentOS .
Но если нужная версия в нем отсутствует, придется собирать пакет из исходников. Список исходников наиболее свежих версий можно найти на официальном сайте, а все возможные версии есть на Github. Смотрим ссылку на нужный нам исходник, скачиваем его:
wget https://releases.pagure.org/freeipa/freeipa-4.9.2.tar.gz
Распаковываем:
tar zxvf freeipa-*.tar.gz
Переходим:
cd freeipa-*/
Конфигурируем, собираем, устанавливаем:
./configure
make
make install
Если на сервере FreeIPA также выполняется роль DNS, нам нужен еще один пакет:
yum install ipa-server-dns
3. Смена имени хоста.
Как говорилось выше, имя нашего хоста должно быть таким же, так и у сервера, на котором создана резервная копия. В нашем примере это ipa.remontka.local — команда будет такой:
hostnamectl set-hostname ipa.remontka.local
Подготовительные работы выполнены.
Нам нужно загрузить каталог с резервной копией на целевой сервер, после помещаем его в каталог /var/lib/ipa/backup . Само копирование может быть выполнено с помощью rsync, scp, WinSCP и так далее.
После переходим в каталог с копией:
cd /var/lib/ipa/backup
Запускаем процесс восстановления:
ipa-restore ipa-full-2021-09-27-12-22-42
* где ipa-full-2021-09-27-12-22-42 — название каталога с архивом.
Мы увидим запрос с предупреждением, что все наши данные будут перезаписаны данными из архива. Соглашаемся:
Restoring data will overwrite existing live data. Continue to restore? [no]: yes
Ждем окончания процесса.
После восстановления необходимо убедиться, что наши службы работают корректно. Описание решения некоторых проблем описано ниже .
1. Для начала, смотрим общее состояние служб:
ipactl status
В идеале, мы должны увидеть:
Directory Service: RUNNING
krb5kdc Service: RUNNING
kadmin Service: RUNNING
named Service: RUNNING
httpd Service: RUNNING
ipa-custodia Service: RUNNING
pki-tomcatd Service: RUNNING
ipa-otpd Service: RUNNING
ipa-dnskeysyncd Service: RUNNING
ipa: INFO: The ipactl command was successful
2. После смотрим состояние с помощью healthcheck. Для этого установим утилиту:
yum install ipa-healthcheck
Запустим:
ipa-healthcheck
Если проблем нет, то мы должны увидеть пустые скобки:
[]
Рассмотрим ошибки, с которыми столкнулся я.
Ошибка появляется после восстановления при проверке состояния служб командой ipactl status.
Причина: при восстановлении в файл /etc/hosts прописывается строка для нашего сервера. Но если новый сервер имеет IP-адрес отличный от сервера, на котором выполнялась копия, данная запись будет неправильной.
Решение: в идеале, новый сервер должен быть с таким же адресом, что и был у предшественника. Если это невозможно по каким-либо причинам, то открываем файл hosts:
vi /etc/hosts
И задаем правильное значение:
192.168.1.15 ipa.remontka.local
* где 192.168.1.15 — новый адрес сервера; ipa.remontka.local — имя нашего сервера.
Перезапускаем сервис:
ipactl restart
Теперь должно все работать.
Ошибка появляется при проверке состоянию с помощью healthcheck.
Причина: отсутствует каталог /etc/httpd/alias. Скорее всего, недоработка со стороны разработчиков утилиты restore.
Решение: создаем каталог:
mkdir /etc/httpd/alias
Перезапускаем httpd:
systemctl restart httpd
Ошибка появляется в логе веб-сервера httpd при попытке его запуска.
Причина: нет доступа по сети к каталогу. Причины могут быть разные, нужна диагностика по сети.
В моем случае оказалось, что в файле hosts было несколько записей для моего сервера.
Решение: проверяем работу сети и доступность каталога. Проверяем, что в hosts нет лишних строчек для нашего сервера.
После выполняем:
ipactl restart
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…