Резервное копирование и восстановление инфраструктуры freeipa
К сожалению, мне не хватает документации по резервному копированию и восстановлению ipa-сервера, и я так критично отношусь к этому, что я не очень рад стрелять в темноте - может, какая-нибудь добрая душа более осведомлена в этом вопросе, пожалуйста, попытайтесь предоставить идиота. руководство по резервному копированию и восстановлению серверов IPA? В частности, основной сервер (сертификат подписи).
... Мы рассчитываем развернуть ipa в двух настройках сервера (1 мастер, 1 реплика). Я использую DNS-записи srv для обработки восстановления после сбоя, поэтому потеря реплики не имеет большого значения, так как я могу создать новую и вызвать повторную синхронизацию - это потеря мастера, который беспокоил меня.
То, с чем я действительно борюсь, - это пошаговая процедура резервного копирования и восстановления главного сервера. Мне известно, что моментальный снимок всей виртуальной машины является рекомендуемым способом резервного копирования IPA-сервера, но в данный момент это не вариант для нас.
Я также знаю, что freeipa 3.2.0 включает в себя какую-то встроенную команду резервного копирования, но этого нет в ipa-версии centos, и я не ожидаю, что это будет в течение некоторого времени.
Я пробовал много разных методов, но ни один из них, похоже, не восстанавливал чисто, среди других я пробовал;
команда, похожая на db2ldif.pl -D "cn= менеджер каталогов" -w - -n userroot -a /root/userroot.ldif
отсюда скрипт для создания трех файлов ldif - один для домена ({domain}-userroot) и два для сервера ipa (ipa-ipaca и ipa-userroot):
Большинство восстановлений, которые я пробовал, были похожи на: ldif2db.pl -D "cn=directory manager" -w - -n userroot -i userroot.ldif
которая, кажется, работает и не сообщает об ошибках, но полностью блокирует установку ipa на машине, и я больше не могу войти ни с паролем администратора на резервном сервере, ни с паролем, который я установил при установке, перед попыткой выполнить команду ldif2db (Я устанавливаю ipa-server и запускаю ipa-server-install, затем пытаюсь восстановить).
Меня не слишком беспокоит потеря CA, необходимость присоединения к домену, потеря репликации и т. Д. И т. Д. (Хотя было бы здорово, если бы этого можно было избежать), но в случае падения основного сервера я бы очень хотел избежать необходимость повторного ввода всей информации о пользователе / группе.
Я предполагаю, что в случае потери основного сервера я мог бы рекламировать другой и копировать в другом направлении, но я тоже не пробовал. Кто-нибудь делал это?
tl; dr: Может ли кто-нибудь предоставить руководство для идиотов по резервному копированию и восстановлению сервера IPA (предпочтительно на CentOS 6) достаточно ясно, чтобы я чувствовал уверенность, что он действительно сработает, когда наступит страшное время? Цветные карандаши не обязательны, но приветствуются;-) Я не могу быть единственным человеком, борющимся с этим, видя, насколько широко используется IPA, конечно?
3 ответа
У меня нет подходящего решения для резервного копирования и восстановления сервера FreeIPA на CentOS, только обходной путь, чтобы сервер работал с такой же конфигурацией в кратчайшие сроки. Вы теряете CA, и вам нужно снова присоединить хосты к серверу.
Именно так я справлялся с "аварийным восстановлением" при использовании 2.x
серии. Я провел много проб и ошибок и устал от восстановления своих настроек с нуля:
- подготовить новый хост, используя DHCP+PXE+TFTP+Kickstart.
- убедитесь, что скрипт kickstart устанавливает
puppetlabs
репо и зарегистрируйтесь сpuppetmaster
есть (была) запись вautosign.conf
для этого. (Thepuppetlabs
репо не обязательно, но я использовал синтаксис, отсутствующий в стандартной версииpuppet
). - написать модуль, содержащий
package
ресурс для установки сервера и его зависимостей, а такжеexec
ресурс для запуска сценария оболочки (все находятся под контролем версий), определяющий всю инфраструктуру, необходимую в домене.
Я дам вам фрагмент сценария здесь, вы получите общее представление:
#!/usr/bin/env bash
# vim:syn=sh:ts=2:fdm=marker
# IPASERVER BOOTSTRAP {{{
# HOSTGROUPS {{{
# foo {{{
ipa hostgroup-add foo --desc='Foo Bar Baz'
ipa hostgroup-add-member sanfernando --hosts={foo,bar,baz}.domain.com
ipa netgroup-add net_foo --nisdomain=domain.com --desc='Foo Bar Baz'
ipa netgroup-add-member net_foo --hostgroups=sanfernando
# }}}
# }}}
# PWPOLICY {{{
ipa pwpolicy-mod global_policy --history=24
ipa pwpolicy-mod global_policy --lockouttime=1200
ipa pwpolicy-mod --setattr=krbpwdmindiffchars=4
ipa pwpolicy-mod --setattr=krbpwdminlenght=14
ipa pwpolicy-mod --setattr=krbpwdmaxfailure=5
ipa pwpolicy-mod --setattr=krbminpwdlife=168
ipa pwpolicy-mod --setattr=krbpwdfailurecountinterval=1200
# }}}
# USERS/GROUPS/HBAC {{{
# developers {{{
ipa user-add jdoe --first='Jane' --last='Doe' --email='jdoe@domain.com' --gecos='Jane Doe' --shell='/bin/rbash' --sshpubkey='AAA......XXGDGHU='
ipa group-add foo --desc='Foo Staff'
ipa group-add-member foo --users=jdoe
ipa hbacrule-add developers_access --desc='Developers access'
ipa hbacrule-add-host developers_access --hostgroups=development
ipa hbacrule-add-user developers_access --groups=developers
ipa hbacrule-add-service developers_access --hbacsvcs=sshd
ipa hbacrule-add-service developers_access --hbacsvcgroups=Sudo
# }}}
# }}}
# SUDO CMD/RULE/GROUP {{{
# networking {{{
ipa sudocmd-add --desc='administration tool for IPv4 packet filtering and NAT' '/sbin/iptables'
ipa sudocmd-add --desc='view and manipulate media-independent interface status' '/sbin/mii-tool'
ipa sudocmd-add --desc='display or change ethernet card settings' '/sbin/ethtool'
ipa sudocmd-add --desc='show and manipulate routing, devices, policy routing and tunnels' '/sbin/ip'
ipa sudocmd-add --desc='sudoedit configuration file of IPv4 packet filtering and NAT' 'sudoedit /etc/sysconfig/iptables'
ipa sudocmdgroup-add networking --desc='commands for network configuration and troubleshooting'
ipa sudocmdgroup-add-member networking --sudocmds=/sbin/{iptables,mii-tool,ethtool,ip}
ipa sudocmdgroup-add-member networking --sudocmds='sudoedit /etc/sysconfig/iptables'
ipa sudorule-add networking_4_operators_2 --desc='Operator Level 2 access to networking management commands'
ipa sudorule-add-allow-command networking_4_operators_2 --sudocmdgroups='networking'
ipa sudorule-add-user networking_4_operators_2 --groups='operators_2'
ipa sudorule-add-host networking_4_operators_2 --hostgroups=foo-hosts
# }}}
# }}}
# }}}
FreeIPA (ныне именуемая Red Hl Identity Manager на RHEL) начиная с версии 4.x включает инструменты CLI: ipa-backup
(создание резервной копии в зашифрованном виде GPG либо всей информации о сервере, либо только данных LDAP) и ipa-restore
,
Одно предостережение: после восстановления резервной копии, содержащей только данные, на только что установленном сервере, я обнаружил, что это затерло учетные данные администратора, и я не мог войти в систему как администратор или любое другое использование независимо от того, что я сделал (сообщение об ошибке "неверный пароль"). Так что это было довольно бесполезно. Это, возможно, было причудой моей установки, как бы то ни было. Обязательно протестируйте восстановление, прежде чем полагаться на него!
Простого ответа на резервное копирование и восстановление во FreeIPA не существует. Мы говорим о среде с несколькими хозяевами репликации, где каждый сервер может иметь разную конфигурацию, различную службу (CA, DNS), которую мы хотим сохранить.
С самого начала проекта общим ответом на резервное копирование и восстановление во FreeIPA было - есть реплики. Благодаря наличию нескольких реплицированных серверов FreeIPA вы сохраняете избыточность и доступность даже в случае сбоя некоторых серверов. Если у вас есть другие службы, такие как CA или DNS, просто используйте их на репликах FreeIPA, чтобы не оказаться застигнутыми врасплох. Если вы используете записи DNS SRV для обнаружения служб FreeIPA вашими клиентами, что они даже не заметят, если вы потеряете некоторые из них, они должны просто переключиться на другой доступный FreeIPA.
Также может быть целесообразно делать регулярные снимки виртуальных машин одного сервера резервного копирования FreeIPA, чтобы убедиться, что у вас есть с чего начать в случае поломки всей реплицированной среды. Если вы заинтересованы не в структурном резервном копировании, а в резервном копировании данных, я бы посоветовал db2ldif как лучший способ резервного копирования данных.
Я надеюсь, что этот краткий совет поможет, вы можете найти больше ресурсов на сайте FreeIPA.org: