Tecnología inalámbrica : Cisco Policy Suite for Wi-Fi

Discordancía SVN UUID y Sincronización de datos SVN

18 Junio 2016 - Traducción Automática
Otras Versiones: PDFpdf | Comentarios

Introducción

Este documento describe cómo sincronizar el repositorio del control de la subversión (SVN) entre PCRFClient01 y PCRFClient02.

Contribuido por Aravindhan Balasubramanian, ingeniero de Cisco TAC.

DISCORDANCÍA SVN UUID

Todas las configuraciones de la política en el constructor de la directiva (PB) se salvan como repositorio SVN. Así pues, para tener Alta disponibilidad (HA) que usted necesita tener el mismo Identificador único universal SVN (UUID) a través de ambas máquinas virtuales de PCRFClient (VM). Sin embargo, la versión 7.X de la habitación de la directiva de Cisco (CP) no tiene el mismo UUID a través de PCRFClient VM. Es decir, más arriba las versiones CP tienen el mismo UUID. Se ha ingresado un bug de la mejora, el Id. de bug Cisco CSCuu85319. Usted podría alcanzar el HA si usted tiene el mismo número de revisión en ambos PCRFClient0X VM.

Verifique la sincronización SVN a través de PCRFClient VM

Puesto que el UUID no es lo mismo a través de ambos PCRFClient VM, ingrese estos comandos:

svn info http://pcrfclient01/repos/configuration
svn info http://pcrfclient02/repos/configuration

Nota: Con estos comandos, usted tiene que dar el nombre del host exacto del PCRFClient01 y del PCRFClient02 VM. Usted puede también utilizar el script check_svn_sync.sh para marcar si el repositorio SVN está sincronizado a través de PCRFClient VM. Este script se proporciona en el extremo de este artículo.

Usted puede ser que note estos registros de error de la habitación de la red de Quantum (QNS). Estos mensajes de error se pueden marcar con el script svn_uuid_mismatch.sh. Este script se proporciona en el extremo de este artículo.

==qns-1.log==
2015-06-10 00:51:15,058 [pool-4-thread-1] WARN
c.b.r.impl.ReferenceDataManager - SVN directory failed in updating
2015-06-10 01:51:44,050 [pool-4-thread-1] WARN
c.b.r.impl.ReferenceDataManager - SVN directory failed in updating
2015-06-10 03:52:41,061 [pool-4-thread-1] WARN
c.b.r.impl.ReferenceDataManager - SVN directory failed in updating

==Service-qns-1.log==
svn: Repository UUID '70e98d90-b9c7-4c5b-a3db-681dd68c62a6'
doesn't match expected UUID 'ed2f2f76-f588-443e-9bb8-3fb05abd903b'
svn: Repository UUID '70e98d90-b9c7-4c5b-a3db-681dd68c62a6'
doesn't match expected UUID 'ed2f2f76-f588-443e-9bb8-3fb05abd903b'
svn: Repository UUID '70e98d90-b9c7-4c5b-a3db-681dd68c62a6'
doesn't match expected UUID 'ed2f2f76-f588-443e-9bb8-3fb05abd903b'

Como se muestra debajo de usted puede observar que el UUID es diferente a través de los VM, pero las versiones tienen que seguir siendo lo mismo. Si la versión SVN en ambo el PCRFClient VM es lo mismo, después la sincronización del repositorio SVN está allí y usted tiene posteriormente Alta disponibilidad.

===PCRFClient01===

[root@pcrfclient01 ~]# svn info http://pcrfclient01/repos/configuration
Path: configuration
URL: http://pcrfclient01/repos/configuration
Repository Root: http://pcrfclient01/repos
Repository UUID: ed2f2f76-f588-443e-9bb8-3fb05abd903b
Revision: 392 <<<< revision number
Node Kind: directory
Last Changed Author: broadhop
Last Changed Rev: 392
Last Changed Date: 2015-06-01 15:52:12 -0600 (Mon, 01 Jun 2015)


===PCRFClient02===


[root@pcrfclient01 ~]# svn info http://pcrfclient02/repos/configuration
Path: configuration
URL: http://pcrfclient02/repos/configuration
Repository Root: http://pcrfclient02/repos
Repository UUID: 70e98d90-b9c7-4c5b-a3db-681dd68c62a6
Revision: 392 <<<< revision number
Node Kind: directory
Last Changed Author: broadhop
Last Changed Rev: 392
Last Changed Date: 2015-06-01 15:52:12 -0600 (Mon, 01 Jun 2015)

Repare la sincronización del repositorio SVN

La sección anterior explicada cómo marcar la sincronización del repositorio SVN. Esta sección discute cómo reparar la sincronización SVN. Asuma que PCRFClient01 es primario y PCRFClient02 es secundario y que el repositorio PCRFClient02 SVN está fuera de sincroniza.

Complete estos pasos para hacer que el repositorio PCRFClient02 SVN sincroniza para arriba con PCRFClient01:

  1. En PCRFClient01, inhabilite la tarea de sincronización SVN:
    crontab -e

    Comment this cron job entry:
    /usr/bin/svnsync sync http:// pcrfclient02/repos-proxy-sync

    Nota: Aquí, PCRFClient02 es el nombre del host del cliente del PCRFClient02 VM.

  2. Inicie sesión a PCRFClient02 y edite “/etc/httpd/conf.d/subversion.conf” y póngalo al día con este texto en negrita:
    <Location /repos-proxy-sync>
          DAV svn
          SVNPath /var/www/svn/repos
          Order deny,allow
          Deny from all
           Allow from pcrfclient01 <<< # customer host name of PCRFClient01 VM
    </Location>
  3. En el PCRFClient02 VM, ingrese este comando para recomenzar el servicio httpd.
    service httpd restart
  4. En PCRFClient01, ingrese este comando para sincronizar los datos SVN. La sincronización del repositorio SVN pudo tomar dependiente del tiempo sobre el número y el tamaño de las revisiones.
    /usr/bin/svnsync sync http://pcrfclient02/repos-proxy-sync

    Nota: Aquí, PCRFClient02 es el nombre del host del cliente de PCRFClient02 VM.

    Si los errores del bloqueo están señalados, después ingrese este comando y después revise el comando del svnsync:

    /usr/bin/svn propdel svn:sync-lock --revprop -r 0 http:// pcrfclient02/repos-proxy-sync

    Si los errores todavía se consideran, proceda a reinicializar la sincronización SVN.

  5. Para verificar que el número de revisión para el repositorio SVN sea lo mismo en PCRFClient01 y PCRFClient02, utilice el script de check_svn_sync.sh o el comando CLI mencionado adentro verifica la sincronización SVN a través de PCRFClient VM.
  6. En PCRFClient01, habilite la tarea de sincronización SVN:
    crontab -e
    /usr/bin/svnsync sync http://pcrfclient02/repos-proxy-sync

Reinicialice la sincronización SVN

Realice estos pasos solamente si usted encuentra un error en el paso 4 en el arreglo de la sección la sincronización del repositorio SVN. Si usted no encuentra ninguna errores en la sección anterior, usted puede ignorar estos pasos.

Nota: Alcance hacia fuera al equipo de Soporte técnico de Cisco antes de que usted realice estos pasos.

  1. Antes de que usted reinicialice el SVN sincronice, primero inhabilite PCRFClient02 del svn_proxy en la configuración del haproxy:
    1. Vaya a la libra espera (lb02 en este ejemplo) y modifique “/etc/haproxy/haproxy.cfg” y comente hacia fuera la línea en negrita mostrada aquí:
      listen svn_proxy lbvip02:80
      mode http
      balance roundrobin
      option httpchk
      option httpclose
      option abortonclose
      server pcrfclient01 pcrfclient01:80 check
      #server pcrfclient02 pcrfclient02:80 check backup
    2. Vaya a la libra activa (lb01 en este ejemplo) y ingrese este comando para hacer una Conmutación por falla HA:
      /etc/init.d/heartbeat restart
    3. Verifique que “haproxy/memcached/VIP” desplazara a la otra libra (lb02 en este ejemplo).
    4. Vaya a la libra espera (lb01 es espera ahora) y modifique “/etc/haproxy/haproxy.cfg” y comente hacia fuera la línea en negrita:
      listen svn_proxy lbvip02:80
      mode http
      balance roundrobin
      option httpchk
      option httpclose
      option abortonclose
      server pcrfclient01 pcrfclient01:80 check
      #server pcrfclient02 pcrfclient02:80 check backup
    5. Vaya a la libra activa (lb02 es activo ahora) y ingrese este comando para hacer una Conmutación por falla HA:
      /etc/init.d/heartbeat restart
    6. Verifique “haproxy/memcached/VIP” desplazado a la otra libra (lb01 en este ejemplo).
  2. En PCRFClient02, ingrese estos comandos para reinicializar el directorio repositorio SVN:
    tar -czf /var/tmp/repos.tar.gz /var/www/svn/repos
    mkdir -p /var/www/svn/repos
    rmdir /var/www/svn/repos
    /usr/bin/svnadmin create /var/www/svn/repos
    chown -R apache:apache /var/www/svn/repos
  3. En PCRFClient02, cree un archivo nombrado “PRE-revprop-cambio” en la trayectoria “/var/www/svn/repos/hooks/” con estos datos:
    #!/bin/sh
    #/var/www/svn/repos/hooks/pre-revprop-change
    exit 0
  4. En PCRFClient02, ingrese estos comandos para cambiar los permisos previamente del archivo creado y también realizar los reinicios del servicio httpd:
    chmod 700 /var/www/svn/repos/hooks/pre-revprop-change
    chown apache:apache /var/www/svn/repos/hooks/pre-revprop-change
    service httpd restart
  5. En PCRFClient01, ingrese estos comandos para realizar la Sincronización de datos SVN:
    /usr/bin/svnsync init http://pcrfclient02/repos-proxy-sync
    http:// pcrfclient01/repos-proxy-sync
    /usr/bin/svnsync sync http:// pcrfclient02/repos-proxy-sync

    Nota: En lugar de PCRFClient01 y de PCRFClient02, proporcione el hostname apropiado de PCRFClient01 y de PCRFClient02 según su configuración.

  6. Para verificar si sus repositorios SVN estén sincronizados, complete los pasos adentro verifican la sincronización SVN a través de PCRFClient VM.
  7. Habilite PCRFClient02 del proxy SVN en la configuración del haproxy. Básicamente, uncomment las líneas que usted comentó hacia fuera en el paso 1.
    1. Vaya a la libra espera (lb02 en este ejemplo) y modifique “/etc/haproxy/haproxy.cfg” y la línea en negrita del uncommentthe:
      listen svn_proxy lbvip02:80
      mode http
      balance roundrobin
      option httpchk
      option httpclose
      option abortonclose
      server pcrfclient01 pcrfclient01:80 check
      server pcrfclient02 pcrfclient02:80 check backup
    2. Verifique “haproxy/memcached/VIP” desplazado a la otra libra (lb02 en este ejemplo).
      /etc/init.d/heartbeat restart 
    3. Verifique “haproxy/memcached/VIP” desplazado a la otra libra (lb02 en este ejemplo).
    4. Va a la libra espera (lb01 es espera ahora) y modifica “/etc/haproxy/haproxy.cfg” y el uncomment la línea en negrita mostrada aquí:
      listen svn_proxy lbvip02:80
      mode http
      balance roundrobin
      option httpchk
      option httpclose
      option abortonclose
      server pcrfclient01 pcrfclient01:80 check
      server pcrfclient02 pcrfclient02:80 check backup
    5. Vaya a la libra activa (nowlb02 es activo) y ingrese este comando para completar la Conmutación por falla HA:
      /etc/init.d/heartbeat restart
    6. Verifique que “haproxy/memcached/VIP” desplazara a la otra libra (lb01 en este ejemplo).
  8. En PCRFClient01, habilite la tarea de sincronización SVN:
    crontab -e/usr/bin/svnsync sync http://pcrfclient02/repos-proxy-sync

Scripts

check_svn_sync.sh

Ponga por favor este script en su sistema CP para marcar la sincronización SVN a través de PCRFClient VM.

#!/bin/bash
a=$(svn info http://pcrfclient01/repos/configuration | grep -i Revision | grep -o '[0-9]*')
b=$(svn info http://pcrfclient02/repos/configuration | grep -i Revision | grep -o '[0-9]*')
if [ "$a" == "$b" ]; then
echo -e "SVN repository Synchronization:\e[0;32m PASS \e[0m"
echo -e "PCRFClient01 SVN repository revision number is : \e[1;33m $a \e[0m"
echo -e "PCRFClient02 SVN repository revision number is : \e[1;33m $b \e[0m"
else
echo -e "SVN repository Synchronization :\e[0:31m FAIL \e[0m"
echo -e "PCRFClient01 SVN repository revision number is : \e[1;33m $a \e[0m"
echo -e "PCRFClient02 SVN repository revision number is : \e[1;33m $b \e[0m"
fi

svn_uuid_mismatch.sh

Ponga por favor este script en su sistema CP para monitorear los Mensajes de error relacionado SVN UUID del QNS individual VM.

#!/bin/bash
for HN in `hosts.sh |grep qns`;
do echo -e "\e[1;32m $HN\e[0m";
echo -e "\e[1;33m===qns-1.log===\e[0m"
ssh $HN grep -wh "SVN directory failed" 2>/dev/null /var/log/broadhop/qns-1.log | tail -10;
echo -e "\e[1;33m===service-qns-1.log===\e[0m"
ssh $HN grep -wh "match expected UUID" 2>/dev/null /var/log/broadhop/service-qns-1.log | tail -10;
done

Discusiones relacionadas de la comunidad de soporte de Cisco

La Comunidad de Soporte de Cisco es un foro donde usted puede preguntar y responder, ofrecer sugerencias y colaborar con colegas.