FreeIPAサーバーを4.6.8から4.9.6へ移行する

移行元

・ ディストリビューション: CentOS 7.9
・ ホスト名: ipa1.local.example.com
・ IPアドレス: 192.168.0.10
・ IPAサーバー: 4.6.8

移行先

・ ディストリビューション: AlmaLinux 8.5
・ ホスト名: newipa1.local.example.com
・ IPアドレス: 192.168.0.20
・ IPAサーバー: 4.9.6

重要な留意事項

移行先の4.9.6にはca設定を含むレプリカが作成できない不具合があるため、試した限り移行元から移行先へのレプリカ作成は一度しか実行できない。一度でも4.9.6でレプリカを作成した場合、それ以降は4.6.8のca設定を含むレプリカを4.9.6で作成できなくなった。

4.9.6への移行を実行する際に注意すること

この作業手順でca設定などが消失しても運営者は一切責任とりません

・移行元のバックアップを作成してから実行する<br>
・移行先のFQDNは本番プライマリサーバーと同一にする<br>

移行元と移行先のFQDNが同一の場合

4.9.6のレプリカ作成前なら4.6.8同士のレプリカを作成できるので、それを利用して4.6.8のレプリカを作成し、プライマリに変更して移行元とする。
参考ページ: dna範囲の確認方法

① 一時的に移行元と同じ4.6.8でcaを含むバックアップ用のレプリカを作成する
② IdMのWebUIなどで「IPA CA renewal master」をバックアップ用のレプリカに変更する
③ 移行元のdna範囲を控える
④ 移行先と同じFQDNのIPAサーバーを削除する
⑤ さっきの記事を参考に控えたdna範囲をバックアップ用のレプリカにセットする

移行元(CentOS 7.9)での作業

移行元でファイアウォールを無効化しておく。使用しているポートが違うのか例外設定していても失敗する。

# systemctl stop firewalld

移行元のIdMにWEBブラウザでアクセスして、移行先のhostを追加する。

移行先(AlmaLinux 8.5)での作業

移行先のホスト名をFQDNに変更する。

# hostnamectl set-hostname newipa1.local.example.com

参照するDNSサーバーを移行元IPAサーバーにする。

# nmcli connection modify コネクション名 ipv4.dns 192.168.0.10
# nmcli connection up コネクション名

必要なパッケージをインストールする。

# dnf install @idm:DL1
# dnf install ipa-server ipa-server-dns

IPAクライアントとして設定する。

# ipa-client-install

初回ログイン時にホームディレクトリを自動生成するよう設定する。

# authconfig --enablemkhomedir --update

ファイアウォールの例外を登録する。

# firewall-cmd --permanent --add-service={freeipa-ldap,freeipa-ldaps,freeipa-replication,dns,ntp,http,https}
# firewall-cmd --reload

ca設定を含むレプリカを作成する。
※DNSとしても動作させるため「–setup-dns」オプション指定

# ipa-replica-install --setup-ca --setup-dns --forwarder <forwarderのIPアドレス1> --forwarder <forwarderのIPアドレス2>

参照するDNSサーバーを自身にする。

# nmcli connection modify コネクション名 ipv4.dns 192.168.0.20
# nmcli connection up コネクション名

「IPA CA renewal master」を移行先に変更する。

# kinit admin
# ipa config-mod --ca-renewal-master-server newipa1.local.example.com

移行元のdna範囲を確認する。
※必要に応じて予め「kinit admin」で認証する

# ipa-replica-manage dnarange-show

確認した移行元のdna範囲を移行先にセットする。
※必要に応じて予め「kinit admin」で認証する

# ipa-replica-manage dnarange-set newipa1.local.example.com 1304400077-1304599999