Introduzione
Questo documento descrive la procedura per ripristinare la sincronizzazione SVN (Recovery Subversion) in Cisco Policy Suite (CPS).
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza dei seguenti argomenti:
Nota: Cisco consiglia di disporre dell'accesso privilegiato alla CLI di CPS root.
Componenti usati
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
- CPS 20.2
- Unified Computing System (UCS)-B
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Premesse
Apache SVN è il sistema di creazione delle versioni e di controllo delle revisioni utilizzato in CPS. Mantiene tutte le configurazioni dei criteri CPS e dispone di repository in cui è possibile creare, aggiornare ed eliminare file. SVN mantiene la differenza di file ogni volta che viene apportata una modifica a un file sul server e per ogni modifica genera un numero di revisione.
In generale, la maggior parte delle interazioni con SVN vengono eseguite tramite Policy Builder (PB).
In altre parole, CPS memorizza i dati di configurazione dei criteri utilizzando SVN, o subversion, in un database SVN. che fornisce un'interfaccia grafica utente (GUI) per visualizzare e modificare il database SVN (DB) chiamato Policy Builder (PB) che si connette alla macchina virtuale pcrfclient/Operation and Maintenance (OAM) tramite un'interfaccia esterna, l'indirizzo IP virtuale (VIP) e il Policy Director (PD).
I dati di configurazione nel database SVN di entrambi i client pcrfdevono essere sincronizzati in qualsiasi momento.
CPS è costituito da un'implementazione del modello ad alta disponibilità (HA, High Availability) attiva e in standby dei nodi client pcrfc, in cui un nodo viene eseguito come attivo e l'altro come standby.
Problema
È possibile che in alcune situazioni, l'SVN tra i nodi client pcrfin un CPS non sia sincronizzato e quindi sia necessario per renderli sincronizzati.
In alcuni casi, per lo più post policy di pubblicazione, al momento del switchover arbitervip o anche se il server SVN non è raggiungibile, allora i blocchi SVN vengono creati nel repository di destinazione.
La sincronizzazione SVN non è più aggiornata e può essere visualizzata in /var/log/httpd/svnsync.log
in pcrfclient interessato. Quando vengono creati questi blocchi, l'output di diagnostica di CPS mostra l'errore di sincronizzazione SVN. Eseguire questo comando da Cluster Manager o da pcrfclient per controllare lo stato di sincronizzazione SVN.
[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
Procedura di ripristino della sincronizzazione SVN tra i nodi client pcrfc
Approccio 1
Questo approccio viene utilizzato quando non viene creato alcun blocco SVN.
Passaggio 1. Accedere al rispettivo nodo pcrfclient come mostrato nella diagnostica ed eseguire questo comando per sincronizzare SVN tra i nodi pcrfclient attivi e in standby.
/var/qps/bin/support/recover_svn_sync.sh
Output del comando se la sincronizzazione SVN ha esito positivo:
[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 ~]#
Se questo comando non è in grado di sincronizzare il servizio SVN e genera questo errore relativo al blocco del servizio SVN nel repository di destinazione o mirror, passare all'approccio 2, che prevede il blocco del servizio SVN.
Passaggio 2. Eseguire questo comando da Cluster Manager o da pcrfclient per verificare lo stato della sincronizzazione SVN.
[root@installer ~]# diagnostics.sh --svn
CPS Diagnostics HA Multi-Node Environment
---------------------------
Checking svn sync status between pcrfclient01 & pcrfclient02...[PASS]
[root@installer ~]#
Approccio 2
È possibile utilizzare questo approccio se il blocco SVN viene creato nel repository di destinazione o di mirroring.
Passaggio 1. Accedere al nodo pcrfclient corrispondente come mostrato nella diagnostica ed eseguire questo comando.
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. Eseguire questo comando per rubare il blocco SVN sulla destinazione o sul repository mirror.
/usr/bin/ssh -k qns@pcrfclient01 -t '' '/usr/bin/svnsync sync --steal-lock http://pcrfclient02/repos-proxy-sync'
Nota: Questo comando consente a svnsync di sottrarre, se necessario, il blocco utilizzato nel repository di destinazione o di mirroring per garantire l'accesso esclusivo al repository. Questa opzione deve essere utilizzata solo quando esiste un blocco nel repository di destinazione o di mirroring ed è nota come non aggiornata, ovvero quando si è certi che non vi siano altri processi svnsync che accedono al repository.
3. Eseguire questo comando per sincronizzare SVN tra i nodi client pcrfclient attivi e in standby.
[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. Eseguire questo comando da Cluster Manager o da pcrfclient per verificare lo stato della sincronizzazione SVN.
[root@installer ~]# diagnostics.sh --svn
CPS Diagnostics HA Multi-Node Environment
---------------------------
Checking svn sync status between pcrfclient01 & pcrfclient02...[PASS]
[root@installer ~]#