Inleiding
Dit document beschrijft de procedure om subversie (SVN)-synchronisatie in Cisco Policy Suite (CPS) te herstellen.
Voorwaarden
Vereisten
Cisco raadt kennis van de volgende onderwerpen aan:
Opmerking: Cisco raadt aan dat u bevoorrechte toegang tot CPS CLI moet hebben.
Gebruikte componenten
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
- COPS 20,2
- Unified Computing System (UCS)-B
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Achtergrondinformatie
Apache SVN is het versiecontrolesysteem dat binnen CPS wordt gebruikt. Het behoudt alle CPS beleidsconfiguraties en heeft repositories waarin bestanden kunnen worden gemaakt, bijgewerkt en verwijderd. SVN handhaaft het bestandsverschil telkens wanneer een wijziging wordt aangebracht in een bestand op de server en voor elke wijziging genereert het een revisienummer.
Over het algemeen worden de meeste interacties met SVN uitgevoerd via Policy Builder (PB).
Met andere woorden, CPS slaat de gegevens van de beleidsconfiguratie op door het gebruik van SVN, of subversion, in een SVN-database. Dat biedt een grafische gebruikersinterface (GUI) om de SVN-database (DB), genaamd Policy Builder (PB), te bekijken en te bewerken die verbinding maakt met de virtuele machine pcrfclient/Operation and Maintenance (OAM) via een externe interface, de virtuele IP (VIP) en de Policy Director (PD).
De configuratiegegevens in de SVN DB van beide pcrfclients moeten op elk moment synchroon zijn.
CPS bestaat uit actieve en stand-by hoge beschikbaarheid (HA) modelimplementatie van pcrfclient knooppunten, waarbij één knooppunt als actief draait en het andere knooppunt als stand-by draait.
Probleem
Het is mogelijk dat in sommige situaties de SVN tussen de pcrfclient-knooppunten in een CPS niet meer synchroon verloopt en dat deze dan synchroon moeten worden gemaakt.
In sommige gevallen, meestal post beleid publiceren, op het moment van arbitervip switchover of zelfs als de SVN server niet bereikbaar is, dan SVN sloten worden gemaakt op de bestemming repository.
Vervolgens is SVN sync verouderd en deze zijn te zien in /var/log/httpd/svnsync.log
bij een getroffen pcrfclient. Wanneer deze sloten worden gemaakt, toont de diagnostische uitvoer van CPS u de SVN-synchronisatiefout. Voer deze opdracht uit vanuit Cluster Manager of pcrfclient om de SVN-synchronisatiestatus te controleren.
[root@installer ~]# diagnostics.sh --svn
CPS Diagnostics HA Multi-Node Environment
----------------------------
Checking svn sync status between pcrfclient01 & 02...
svn is not sync between pcrfclient01 & pcrfclient02...[FAIL]
Corrective Action(s): Run ssh pcrfclient01 /var/qps/bin/support/recover_svn_sync.sh
Procedure om SVN Sync tussen pcrfclient-knooppunten te herstellen
Benadering 1
Deze benadering wordt gebruikt wanneer er geen SVN-slot wordt gemaakt.
Stap 1. Log in op de respectievelijke pcrfclient-knooppunt zoals in diagnostiek en voer deze opdracht uit om SVN te synchroniseren tussen actieve en stand-by pcrfclient-knooppunten.
/var/qps/bin/support/recover_svn_sync.sh
Opdrachtoutput als SVN sync succesvol is:
[root@dc1-pcrfclient01 ~]# /var/qps/bin/support/recover_svn_sync.sh
=================================================================
[Thu Aug 25 09:10:44 UTC 2022] [INFO] /var/qps/bin/support/recover_svn_sync.sh script is running from console
-----sync betweeen pcrfclient01 & pcrfclient02 --------------------
[Thu Aug 25 09:10:47 UTC 2022] [INFO] Doing SVN sync between pcrfclient01 and pcrfclient02...
[Thu Aug 25 09:11:06 UTC 2022] [INFO] SVN are already in sync between pcrfclient01 and pcrfclient02
[Thu Aug 25 09:11:07 UTC 2022] [INFO] SVN UUID are matched between pcrfclient01 and pcrfclient02
[Thu Aug 25 09:11:07 UTC 2022] [INFO] SVN sync completed successfully for pcrfclient01 & pcrfclient02
[root@dc1-pcrfclient01 ~]#
Als deze opdracht SVN niet kan synchroniseren en deze fout met betrekking tot het SVN-slot in de bestemmings- of spiegelopslagplaats werpt, ga dan voor Benadering 2. die SVN steal lock impliceert.
Stap 2. Start deze opdracht vanuit Cluster Manager of pcrfclient om de SVN-synchronisatiestatus te verifiëren.
[root@installer ~]# diagnostics.sh --svn
CPS Diagnostics HA Multi-Node Environment
---------------------------
Checking svn sync status between pcrfclient01 & pcrfclient02...[PASS]
[root@installer ~]#
Benadering 2
U kunt deze benadering gebruiken als het SVN-slot wordt aangemaakt in de bestemmings- of spiegelopslagplaats.
Stap 1. Log in op de respectievelijke pcrfclient-knooppunt zoals in diagnostiek en voer deze opdracht uit.
Command syntax:
svnsync synchronize file:///var/svn/repos-mirror http://svn.example.com/repos
Sample command:
/usr/bin/ssh -k qns@pcrfclient01 -t '' '/usr/bin/svnsync info http://pcrfclient02/repos-proxy-sync'
[root@dc1-pcrfclient01 ~]# /usr/bin/ssh -k qns@pcrfclient01 -t '' '/usr/bin/svnsync info http://pcrfclient02/repos-proxy-sync'
Source URL: http://pcrfclient01/repos-proxy-sync
Source Repository UUID: f1937c9d-1688-463a-9d4e-db944d9aafb1
Last Merged Revision: 170
[root@dc1-pcrfclient01 ~]#
2. Voer deze opdracht uit om de SVN-vergrendeling op de doelmap of spiegelopslagplaats te stelen.
/usr/bin/ssh -k qns@pcrfclient01 -t '' '/usr/bin/svnsync sync --steal-lock http://pcrfclient02/repos-proxy-sync'
Opmerking: Dit commando zorgt ervoor dat svnsync, indien nodig, het slot steelt dat het gebruikt op de bestemming of spiegel repository om exclusieve toegang tot de repository te verzekeren. Deze optie moet alleen worden gebruikt als er een slot bestaat in de bestemmings- of spiegelopslagplaats en bekend staat als oud—dat wil zeggen, als u zeker weet dat er geen andere svnsync-processen zijn die toegang hebben tot de opslagplaats.
3. Start deze opdracht om SVN te synchroniseren tussen actieve en standby-clientknooppunten.
[root@dc1-pcrfclient01 ~]# /var/qps/bin/support/recover_svn_sync.sh
=================================================================
[Thu Aug 25 09:10:44 UTC 2022] [INFO] /var/qps/bin/support/recover_svn_sync.sh script is running from console
-----sync betweeen pcrfclient01 & pcrfclient02 --------------------
[Thu Aug 25 09:10:47 UTC 2022] [INFO] Doing SVN sync between pcrfclient01 and pcrfclient02...
[Thu Aug 25 09:11:06 UTC 2022] [INFO] SVN are already in sync between pcrfclient01 and pcrfclient02
[Thu Aug 25 09:11:07 UTC 2022] [INFO] SVN UUID are matched between pcrfclient01 and pcrfclient02
[Thu Aug 25 09:11:07 UTC 2022] [INFO] SVN sync completed successfully for pcrfclient01 & pcrfclient02
[root@dc1-pcrfclient01 ~]#
2. Start deze opdracht vanuit Cluster Manager of pcrfclient om de SVN-synchronisatiestatus te verifiëren.
[root@installer ~]# diagnostics.sh --svn
CPS Diagnostics HA Multi-Node Environment
---------------------------
Checking svn sync status between pcrfclient01 & pcrfclient02...[PASS]
[root@installer ~]#