メインコンテンツに移動

レプリケーション

こっちがおにゅう

CentOS8の運用可能性試験,FreeIPA版,最後から2番目の試験項目,レプリケーションでーす!ちなみに最後の試験項目はバックアップとレストアです.

あほらしくて飽きてきたので,さっさとすんでほしいでーす!ま,いまんとこ,3日格闘した甲斐があるという感じだが.これにゃらば,DataGeneral Aviionで1993年に作ったNIS+NFSをサクッと最新版に交換し, 2050年近くまで稼働するシステムが作れそうだ.

では,ここらここらから引用しつつ理解しよう.


  • ドメインを作成するのにインストールする最初のサーバーは マスターサーバー になります.
    • これは作成済みであるとする.
    • これは、CA サブシステムの証明書および鍵の追跡と、CRL の生成を担当するドメイン内の唯一のシステムです
  • 冗長性および負荷分散のために、既存のサーバーのレプリカを作成することで、追加サーバーを作成します。
    • レプリカの作成時、IdM は既存サーバーの設定を複製します。
    • レプリカは、ユーザー、システム、証明書、設定されたポリシーなど、そのコア設定を初期サーバーと共有します。
      • そらな.
  • 既存のサーバーに基づいてレプリカを作成すると、IdMは、初期サーバーとレプリカとの間に レプリカ合意 を作成します。
    • レプリカ合意は、データと設定が 2 台のサーバー間で継続的に複製されることを保証します。
    • レプリカ合意は常に双方向のものです。1 台目のサーバーから 2 台目のサーバーにデータが複製されるだけでなく、2 台目のサーバーから 1 台目のサーバーにもデータが複製されます
      • ほうほう?
    • レプリカ合意を設定しすぎると、全体的なパフォーマンスが低下する可能性もあります
  • レプリカをインストールする前に、ターゲットシステムが Identity Management ドメインでの登録に対して承認されている必要があります。
    • え?最初にクライアントになってから,昇格するんだ・・・  

もういい.わかった.で,インストールする.

Webサイトで現状確認

どこかに【IPA Server】【Topology】【Toplogy Graph】があり,サーバーがぼっちであることがわかる:

ぼっち

よしよし,いま,おともだち連れて来るからねー.


とりあえず,レプリカに立候補すべき試験機を一台用意した.10.249.229.225 (ホスト名 h225.229.249.10.1016485.vlan.kuins.net) である.この「レプリカ」マシンを設定する.レプリカにもDNSのあるやつ,ないやつ,の2種類があるらしい.ノード数が100に届かないナノサイズ・クラスターであるので,まあDNSあるレプリカが2-3台で十分だろう.

代行として立つ

新レプリカで操作

代行候補として名乗りを上げるには,まず,組員でなければいけません.そうしないと「お前いったいどこの組のもんや?」と跳ねられてしまうからです.そこで,クライアントの設定を済ませておきます. 次に代行として立候補するのですが,途中自動的に総代に承認してもらうため,以下を実行してパスワードを登録しておきます:

kinit admin
Password for admin@229.249.10.1016485.VLAN.KUINS.NET:いつものいつもの

では立候補します.まずDNSサーバーを含み認証局を含まないレプリカを作成します(DNSとCAを同時にやると,なぜか失敗する).真のDNSサーバーを--forwarederで指定します.複数あったら複数書けば良い.だから

dnf module install -y idm:DL1/dns
ipa-replica-install --setup-dns --forwarder 10.224.253.1 --forwarder 10.224.254.1
Checking DNS forwarders, please wait ...
Run connection check to master
Connection check OK
Configuring directory server (dirsrv). Estimated time: 30 seconds
  [1/41]: creating directory server instance
  [2/41]: enabling ldapi
  [3/41]: configure autobind for root
  [4/41]: stopping directory server
  [5/41]: updating configuration in dse.ldif
  [6/41]: starting directory server
  [7/41]: adding default schema
  [8/41]: enabling memberof plugin
  [9/41]: enabling winsync plugin
  [10/41]: configuring replication version plugin
  [11/41]: enabling IPA enrollment plugin
  [12/41]: configuring uniqueness plugin
  [13/41]: configuring uuid plugin
  [14/41]: configuring modrdn plugin
  [15/41]: configuring DNS plugin
  [16/41]: enabling entryUSN plugin
  [17/41]: configuring lockout plugin
  [18/41]: configuring topology plugin
  [19/41]: creating indices
  [20/41]: enabling referential integrity plugin
  [21/41]: configuring certmap.conf
  [22/41]: configure new location for managed entries
  [23/41]: configure dirsrv ccache
  [24/41]: enabling SASL mapping fallback
  [25/41]: restarting directory server
  [26/41]: creating DS keytab
  [27/41]: ignore time skew for initial replication
  [28/41]: setting up initial replication
Starting replication, please wait until this has completed.
Update in progress, 6 seconds elapsed
Update succeeded
  [29/41]: prevent time skew after initial replication
  [30/41]: adding sasl mappings to the directory
  [31/41]: updating schema
  [32/41]: setting Auto Member configuration
  [33/41]: enabling S4U2Proxy delegation
  [34/41]: initializing group membership
  [35/41]: adding master entry
  [36/41]: initializing domain level
  [37/41]: configuring Posix uid/gid generation
  [38/41]: adding replication acis
  [39/41]: activating sidgen plugin
  [40/41]: activating extdom plugin
  [41/41]: configuring directory to start on boot
Done configuring directory server (dirsrv).
Configuring Kerberos KDC (krb5kdc)
  [1/5]: configuring KDC
  [2/5]: adding the password extension to the directory
  [3/5]: creating anonymous principal
  [4/5]: starting the KDC
  [5/5]: configuring KDC to start on boot
Done configuring Kerberos KDC (krb5kdc).
Configuring kadmin
  [1/2]: starting kadmin 
  [2/2]: configuring kadmin to start on boot
Done configuring kadmin.
Configuring directory server (dirsrv)
  [1/3]: configuring TLS for DS instance
  [2/3]: importing CA certificates from LDAP
  [3/3]: restarting directory server
Done configuring directory server (dirsrv).
Configuring the web interface (httpd)
  [1/21]: stopping httpd
  [2/21]: backing up ssl.conf
  [3/21]: disabling nss.conf
  [4/21]: configuring mod_ssl certificate paths
  [5/21]: setting mod_ssl protocol list to TLSv1.0 - TLSv1.2
  [6/21]: configuring mod_ssl log directory
  [7/21]: disabling mod_ssl OCSP
  [8/21]: adding URL rewriting rules
  [9/21]: configuring httpd
  [10/21]: setting up httpd keytab
  [11/21]: configuring Gssproxy
  [12/21]: setting up ssl
  [13/21]: configure certmonger for renewals
  [14/21]: publish CA cert
  [15/21]: clean up any existing httpd ccaches
  [16/21]: configuring SELinux for httpd
  [17/21]: create KDC proxy config
  [18/21]: enable KDC proxy
  [19/21]: starting httpd
  [20/21]: configuring httpd to start on boot
  [21/21]: enabling oddjobd
Done configuring the web interface (httpd).
Configuring ipa-otpd
  [1/2]: starting ipa-otpd 
  [2/2]: configuring ipa-otpd to start on boot
Done configuring ipa-otpd.
Configuring ipa-custodia
  [1/4]: Generating ipa-custodia config file
  [2/4]: Generating ipa-custodia keys
  [3/4]: starting ipa-custodia 
  [4/4]: configuring ipa-custodia to start on boot
Done configuring ipa-custodia.
Configuring certificate server (pki-tomcatd)
  [1/2]: configure certmonger for renewals
  [2/2]: Importing RA key
Done configuring certificate server (pki-tomcatd).
Configuring Kerberos KDC (krb5kdc)
  [1/1]: installing X509 Certificate for PKINIT
Done configuring Kerberos KDC (krb5kdc).
Applying LDAP updates
Upgrading IPA:. Estimated time: 1 minute 30 seconds
  [1/10]: stopping directory server
  [2/10]: saving configuration
  [3/10]: disabling listeners
  [4/10]: enabling DS global lock
  [5/10]: disabling Schema Compat
  [6/10]: starting directory server
  [7/10]: upgrading server
  [8/10]: stopping directory server
  [9/10]: restoring configuration
  [10/10]: starting directory server
Done.
Finalize replication settings
Restarting the KDC
Configuring DNS (named)
  [1/8]: generating rndc key file
  [2/8]: setting up our own record
  [3/8]: adding NS record to the zones
  [4/8]: setting up kerberos principal
  [5/8]: setting up named.conf
  [6/8]: setting up server configuration
  [7/8]: configuring named to start on boot
  [8/8]: changing resolv.conf to point to ourselves
Done configuring DNS (named).
Restarting the web server to pick up resolv.conf changes
Configuring DNS key synchronization service (ipa-dnskeysyncd)
  [1/7]: checking status
  [2/7]: setting up bind-dyndb-ldap working directory
  [3/7]: setting up kerberos principal
  [4/7]: setting up SoftHSM
  [5/7]: adding DNSSEC containers
  [6/7]: creating replica keys
  [7/7]: configuring ipa-dnskeysyncd to start on boot
Done configuring DNS key synchronization service (ipa-dnskeysyncd).
Restarting ipa-dnskeysyncd
Restarting named
Updating DNS system records

Global DNS configuration in LDAP server is empty
You can use 'dnsconfig-mod' command to set global DNS options that
would override settings in local named.conf files

WARNING: The CA service is only installed on one server (h223.229.249.10.1016485.vlan.kuins.net).
It is strongly recommended to install it on another server.
Run ipa-ca-install(1) on another master to accomplish this.

なんかできたみたいである.いくつか問題があって

  • CA任侠局のバックアップがない,と指摘されている.
  • 青字のところ,何言われているのか不明

であるな.

どうなったんだ確認

マスターWebサイトで操作

【Identity】【Hosts】で,ホストさんたちが一覧される:h223がマスター,h224が三下,h225がレプリカだ.

hostさんたち

【Groups】【Host Groups】【ipaservers】を選択クリック

ipaservers

 ほうほう,さっき追加した h225が幹部に名を連ねていますね・・・

【IPA Server】【Topology】を確認しようとすると.「CA認証局のバックアップがねえズラ」と文句を言いつつ【IPA Servers】が表示します:

ipaservers-list

文句言う暇があったら,さっき一緒にインストールできてたら簡単なんだけど・・・まあそんな奴は世の中よくいますし,仕方ないですね.

【Topology】にも出現していますが, DNSの線(オレンジ)だけで,CAの線(青色)が引いてないって感じ:

TOPPO-1

ところでレプリカゆうぐらいやから,おんなじ機能があるはずですよね.追加したレプリカの https://10.249.229.225 を訪ねてみようと思います.またブラウザに罵声を聞かされるのか・・・憂鬱だ

レプリカWebサイトで操作

 いや・・・完全にマスターのコピーであるので省略.

代行機能確認

代行に新規ユーザーを登録したら,何秒くらいでマスターに反映されるか,調べてみよう.

レプリカWebサイトで操作

新ユーザー specklin を登録しました. すると, 1秒以内にマスターのWebサイトに出現しました.素晴らしいですね.NISでは1日数回でしたけど. 可用性は圧倒的だってわけだな.

CA認証局のバックアップ

ご指摘の事項

Run ipa-ca-install(1) on another master to accomplish this.

を解決する.問題は,another master だといっていることだな.another であって, the other ではないのね. もちろん, this master でもない.つまり,さらにもう一個のサーバーを作れと言いたげだな.しかしガイドを見ると,CAがない奴は自由に後からインストールできると・・・

試してバッテン!どうせ死ぬのだ死ぬなら今だ!いっけーええええ!

レプリカWebサイトで操作

kinit admin   ←いや,わかんないからやってみただけ. 神仏のご加護があるかと思って
Password for admin@229.249.10.1016485.VLAN.KUINS.NET:いつものいつもの
ipa-ca-install
Directory Manager (existing master) password:いつものいつもの(adminじゃなくてDirectory Managerのほう)
Run connection check to master
Connection check OK
Configuring certificate server (pki-tomcatd). Estimated time: 3 minutes
  [1/26]: creating certificate server db
  [2/26]: setting up initial replication
Starting replication, please wait until this has completed.
Update in progress, 5 seconds elapsed
Update succeeded
  [3/26]: creating ACIs for admin
  [4/26]: creating installation admin user
  [5/26]: configuring certificate server instance
  [6/26]: exporting Dogtag certificate store pin
  [7/26]: stopping certificate server instance to update CS.cfg
  [8/26]: backing up CS.cfg
  [9/26]: disabling nonces
  [10/26]: set up CRL publishing
  [11/26]: enable PKIX certificate path discovery and validation
  [12/26]: destroying installation admin user
  [13/26]: starting certificate server instance
  [14/26]: Finalize replication settings
  [15/26]: setting audit signing renewal to 2 years
  [16/26]: restarting certificate server
  [17/26]: authorizing RA to modify profiles
  [18/26]: authorizing RA to manage lightweight CAs
  [19/26]: Ensure lightweight CAs container exists
  [20/26]: configure certificate renewals
  [21/26]: configure Server-Cert certificate renewal
  [22/26]: Configure HTTP to proxy connections
  [23/26]: restarting certificate server
  [24/26]: updating IPA configuration
  [25/26]: enabling CA instance
  [26/26]: configuring certmonger renewal for lightweight CAs
Done configuring certificate server (pki-tomcatd).
Updating DNS system records

あれ.できちまった.ガンダムが動いて腰を抜かしたアムロくんのように慌ててマニュアルを手繰ると, 以下のコマンドで願いが叶うと:

ipa-certupdate
Systemwide CA database updated.
Systemwide CA database updated.
The ipa-certupdate command was successful

はあ,なにこれ.たぶんガンダム乗る方がワケわかると思うぞ.

各員,損害を報告せよ

Webサイトで操作

【IPA Server】【Topology】【IPA Servers】

ipa-servers2

損害なし!てゆうか両方【domain CA】になって対等に見えます!

【IPA Server】【Topology】【Topology Graph】

topo2

ほーら,なかよしだね♪