Introducción
Este documento describe el procedimiento para recuperar la sincronización de subversión (SVN) en Cisco Policy Suite (CPS).
Prerequisites
Requirements
Cisco recomienda que tenga conocimiento sobre estos temas:
Nota: Cisco recomienda que tenga acceso de raíz con privilegios a la CLI de CPS.
Componentes Utilizados
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
- CPS 20.2
- Unified Computing System (UCS)-B
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Antecedentes
Apache SVN es el sistema de creación de versiones y control de revisiones utilizado en CPS. Mantiene todas las configuraciones de directivas de CPS y cuenta con repositorios en los que se pueden crear, actualizar y eliminar archivos. SVN mantiene la diferencia de fichero cada vez que se realiza un cambio en un fichero del servidor y para cada cambio genera un número de revisión.
En general, la mayoría de las interacciones con SVN se realizan mediante Policy Builder (PB).
En otras palabras, CPS almacena los datos de configuración de la política mediante el uso de SVN, o subversión, en una base de datos SVN. que proporciona una interfaz gráfica de usuario (GUI) para ver y editar la base de datos de SVN (DB) denominada Policy Builder (PB) que se conecta a la máquina virtual pcrfclient/Operation and Maintenance (OAM) a través de una interfaz externa, Virtual IP (VIP) y Policy Director (PD).
Los datos de configuración en la base de datos SVN de ambos clientes pcrf deben estar sincronizados en cualquier momento.
CPS consiste en una implementación de modelos de alta disponibilidad (HA) activa y en espera de nodos de pcrfclient, donde un nodo se ejecuta como activo y el otro nodo se ejecuta como en espera.
Problema
Es posible que en algunas situaciones, el SVN entre los nodos pcrfclient en un CPS salga de la sincronización y luego se requiera que estén sincronizados.
En algunos casos, la mayoría publica políticas post, en el momento del switchover de arbitervip o incluso si el servidor SVN no es accesible, entonces los bloqueos SVN se crean en el repositorio de destino.
Entonces la sincronización SVN se queda obsoleta y se pueden ver en /var/log/httpd/svnsync.log
en pcrfclient afectado. Cuando se crean estos bloqueos, la salida de diagnóstico de CPS muestra el error de sincronización SVN. Ejecute este comando desde el Administrador de clústeres o pcrfclient para verificar el estado de sincronización 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
Procedimiento para recuperar la sincronización SVN entre nodos pcrfclient
Enfoque 1
Este enfoque se utiliza cuando no se ha creado ningún bloqueo SVN.
Paso 1. Inicie sesión en el nodo pcrfclient respectivo como se muestra en el diagnóstico y ejecute este comando para sincronizar SVN entre los nodos pcrfclient activos y en espera.
/var/qps/bin/support/recover_svn_sync.sh
Resultado del comando si la sincronización SVN se realiza correctamente:
[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 ~]#
Si este comando no puede sincronizar SVN y arroja este error relacionado con el bloqueo de SVN en el repositorio de destino o de réplica, entonces vaya al Enfoque 2. que implica el bloqueo de robo de SVN.
Paso 2. Ejecute este comando desde el Administrador de clústeres o pcrfclient, para verificar el estado de sincronización SVN.
[root@installer ~]# diagnostics.sh --svn
CPS Diagnostics HA Multi-Node Environment
---------------------------
Checking svn sync status between pcrfclient01 & pcrfclient02...[PASS]
[root@installer ~]#
Enfoque 2
Puede utilizar este enfoque si el bloqueo SVN se crea en el repositorio de destino o de réplica.
Paso 1. Inicie sesión en el nodo pcrfclient respectivo como se muestra en diagnóstico y ejecute este 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. Ejecute este comando para robar el bloqueo SVN en el repositorio de destino o de réplica.
/usr/bin/ssh -k qns@pcrfclient01 -t '' '/usr/bin/svnsync sync --steal-lock http://pcrfclient02/repos-proxy-sync'
Nota: Este comando hace que svnsync robe, según sea necesario, el bloqueo que utiliza en el repositorio de destino o espejo para garantizar el acceso exclusivo al repositorio. Esta opción sólo se debe utilizar cuando existe un bloqueo en el repositorio de destino o de réplica y se sabe que es obsoleto, es decir, cuando está seguro de que no hay otros procesos svnsync que accedan al repositorio.
3. Ejecute este comando para sincronizar SVN entre los nodos pcrfclient activos y en espera.
[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. Ejecute este comando desde el Administrador de clústeres o pcrfclient para verificar el estado de sincronización SVN.
[root@installer ~]# diagnostics.sh --svn
CPS Diagnostics HA Multi-Node Environment
---------------------------
Checking svn sync status between pcrfclient01 & pcrfclient02...[PASS]
[root@installer ~]#