It happened to me that a node broke in a way that was not feasible to 'repair'. By broken, I mean that I was not able to recover by re-creating all keytabs for the dirserver and named that were invalid according to the logs.
Anyway, here's the way I took to recover the node and make all nodes replicate again
First, log in to a working node and remove the faulty node from the replication:
[archy@ipa02 ~]$ ipa server-del ipa01.archyslife.lan \
--ignore-topology-disconnect
-----------------------------------------
Deleted IPA server "ipa01.archyslife.lan"
-----------------------------------------
If you're running on the latest version of 4.9.6 and EL8.5, you might encounter this error.
After you've removed the host, check if there are any traces left in your ldap tree:
[archy@ipa02 ~]$ ipa server-find
---------------------
2 IPA servers matched
---------------------
Server name: ipa02.archyslife.lan
Min domain level: 1
Max domain level: 1
Server name: ipa03.archyslife.lan
Min domain level: 1
Max domain level: 1
----------------------------
Number of entries returned 2
----------------------------
[archy@ipa02 ~]$ ipa-replica-manage list
ipa02.archyslife.lan: master
ipa03.archyslife.lan: master
Check for any leftover replica update vectors:
[archy@ipa02 ~]$ sudo ipa-replica-manage list-ruv
[sudo] password for archy:
Directory Manager password:
Replica Update Vectors:
ipa02.archyslife.lan:389: 11
ipa03.archyslife.lan:389: 13
Certificate Server Replica Update Vectors:
ipa02.archyslife.lan:389: 12
ipa03.archyslife.lan:389: 14
If there are any replica update vectors left over, you can use 'ipa-replica-manage clean-ruv ID' to remove them. Once everything is clear, you can continue on uninstalling the ipa-server on the faulty replica and reboot it just to be sure.
[root@ipa01 ~]# ipa-server-install --uninstall
[root@ipa01 ~]# reboot
Once the old faulty server is back online, you can start re-integrating it into the infrastructure. Start by enrolling it into the domain:
[root@ipa01 ~]# ipa-client-install --unattended
--principal 'archy' \
--domain 'archyslife.lan' \
--server 'ipa03.archyslife.lan' \
--realm 'ARCHYSLIFE.LAN' \
--mkhomedir
Once the old node is re-enrolled into the domain, check if you can kinit as the admin user:
[root@ipa01 ~]# kinit admin
Password for admin@ARCHYSLIFE.LAN:
If that worked, you can go ahead and promote the host to a replica:
[root@ipa01 ~]# ipa hostgroup-add-member ipaservers \
--hosts 'ipa01.archyslife.lan'
[root@ipa01 ~]# ipa-replica-install \
--setup-ca \
--setup-dns \
--setup-kra \
--forwarder '1.1.1.1' \
--forwarder '9.9.9.9' \
--forward-policy 'only'
This process might take a while to complete. After it's done, check if the ipa services are running:
[root@ipa01 ~]# 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
If you want to make sure that this persists a reboot, you can try stopping and starting (not restarting) the services by using the appropriate 'ipactl stop' and 'ipactl start' commands.
The last thing to do is ensure the replication agreements exist. I'll be using the cli:
[root@ipa01 ~]# ipa topologysegment-add \
domain 'ipa02.archyslife.lan-to-ipa01.archyslife.lan' \
--leftnode 'ipa02.archyslife.lan' \
--rightnode 'ipa01.archyslife.lan'
[root@ipa01 ~]# ipa topologysegment-add \
domain 'ipa03.archyslife.lan-to-ipa01.archyslife.lan' \
--leftnode 'ipa03.archyslife.lan' \
--rightnode 'ipa01.archyslife.lan'
[root@ipa01 ~]# ipa topologysegment-add \
ca 'ipa02.archyslife.lan-to-ipa01.archyslife.lan' \
--leftnode 'ipa02.archyslife.lan' \
--rightnode 'ipa01.archyslife.lan'
[root@ipa01 ~]# ipa topologysegment-add \
ca 'ipa03.archyslife.lan-to-ipa01.archyslife.lan' \
--leftnode 'ipa03.archyslife.lan' \
--rightnode 'ipa01.archyslife.lan'
By now your servers should all be working and replicating with each other according to the replication agreements.
Feel free to comment and / or suggest a topic.
Comments
Post a Comment