web-dev-qa-db-ja.com

freeipaインフラストラクチャのバックアップと復元

Ipaサーバーのバックアップと復元に関するドキュメントが悲しいことに不足していることに気づきました。中心的に重要であるため、暗闇での撮影に満足しているわけではありません。この問題についてもっと知識のある人がいる可能性があります。馬鹿を提供してみてください。 -IPAサーバーのバックアップと復元に関するプルーフガイド?特にメインサーバー(証明書署名サーバー)。

... 2台のサーバーセットアップ(1つのマスター、1つのレプリカ)でipaを展開することを検討しています。私はフェイルオーバーを処理するためにDNSsrvレコードを使用しているので、レプリカを失うことは大したことではありません。新しいレプリカを作成して再同期を強制することができるからです。それは私を悩ませていたマスターを失っています。

私が本当に苦労しているのは、マスターサーバーをバックアップおよび復元するための段階的な手順を見つけることです。 VM全体のスナップショットがIPAサーバーのバックアップを行うための推奨される方法であることは承知していますが、現時点ではそれはオプションではありません。

また、freeipa 3.2.0にはある種のバックアップコマンドが組み込まれていることも知っていますが、それはipaバージョンのcentosには含まれておらず、しばらくの間はそうなるとは思いません。

私はさまざまな方法を試してきましたが、どれもきれいに復元されていないようです。とりわけ、私は試しました。

  • db2ldif.pl -D "cn = directory manager" -w --- n userroot -a/root/userroot.ldifに類似したコマンド

  • ここからのスクリプト 3つのldifファイルを生成します-1つはドメイン({domain} -userroot)用、2つは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がどれほど広く使われているのかを見て、これに苦労しているのは私だけではありません。

5
Sirex

CentOSでFreeIPAサーバーをバックアップおよび復元するための適切なソリューションがありません。サーバーを同じ構成で最短時間で動作させるための回避策のみです。 CAを失い、ホストをサーバーに再参加させる必要があります

これは、2.xシリーズを使用しているときに「災害復旧」に対処した方法です。私は多くの試行錯誤の実験を行い、設定を最初から復元することにうんざりしました。

  1. dHCP + PXE + TFTP + Kickstartを使用して新しいホストをプロビジョニングします。
  2. キックスタートスクリプトがpuppetlabsリポジトリをインストールし、それ自体をpuppetmasterに登録していることを確認します。この目的のために、autosign.confにエントリがあります(以前は)。 (puppetlabsリポジトリは必須ではありませんが、puppetのストックバージョンにはない構文を使用していました)。
  3. サーバーとその依存関係をインストールするための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='[email protected]' --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
# }}}
# }}}
# }}}
2
dawud

4.x以降のFreeIPA(現在はRHELでRed Hat Identity Managerとしてブランド化されています)には、CLIツールが含まれています:ipa-backup(すべてのサーバー情報またはLDAPデータのみのGPG暗号化バックアップダンプを生成)およびipa-restore

注意点:新しくインストールしたサーバーにデータのみのバックアップを復元した後、管理者の資格情報が破壊され、管理者としてログインできなかった、または何をしても他の用途にログインできなかった(「パスワードが正しくありません」というエラーメッセージ)。だからそれはかなり役に立たなかった。しかし、これは私のセットアップの癖だったかもしれません。復元を信頼する前に、必ずテストしてください。

2
bk0

FreeIPAでのバックアップと復元に対する簡単な答えはありません。マルチマスターレプリケーション環境について話しています。この環境では、サーバーごとに異なる構成、異なるサービス(CA、DNS)があり、それらを保持する必要があります。

プロジェクトの開始以来、FreeIPAでのバックアップと復元に対する一般的な答えは-レプリカを持っているでした。複数のFreeIPA複製サーバーを使用すると、一部のサーバーがクラッシュした場合でも冗長性と可用性を維持できます。 CAやDNSのような他のサービスがある場合は、不意を突かれるのを避けるために、FreeIPAレプリカにそれらをもっと用意するだけです。 DNS SRVレコードを使用してクライアントによるFreeIPAサービスを検出する場合、一部を失ってもクライアントは気付かないはずです。クライアントは他の利用可能なFreeIPAに切り替えるだけです。

また、1つのFreeIPAバックアップサーバーの定期的なVMスナップショットを実行して、複製された環境全体が壊れた場合に備えて、何かを開始できることを確認することも賢明です。構造バックアップだけでなくデータバックアップにも関心がある場合は、データをバックアップする最良の方法としてdb2ldifをお勧めします。

この簡単なアドバイスがお役に立てば幸いです。FreeIPA.orgサイトでより多くのリソースを見つけることができます。

1
Martin Kosek