Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Premesse

Problema

Procedura di ripristino della sincronizzazione SVN tra i nodi client pcrfc

Approccio 1

Approccio 2

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:

- Linux

- CPS

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 ~]#