Sem fio : Cisco Policy Suite for Wi-Fi

Má combinação SVN UUID e de dados SVN sincronização

18 Junho 2016 - Tradução por Computador
Outras Versões: Versão em PDFpdf | Feedback

Introdução

Este documento descreve como sincronizar o repositório do controle da subversão (SVN) entre PCRFClient01 e PCRFClient02.

Contribuído por Aravindhan Balasubramanian, engenheiro de TAC da Cisco.

MÁ COMBINAÇÃO SVN UUID

Todas as configurações das normas no construtor da política (PB) são armazenadas como um repositório SVN. Assim, a fim ter a Alta disponibilidade (HA) que você precisa de ter o mesmo identificador exclusivo universal SVN (UUID) através de ambas as máquinas virtuais de PCRFClient (VM). Contudo, a versão 7.X da série da política de Cisco (CP) não tem o mesmo UUID através de PCRFClient VM. Isto é, mais altamente as versões CP têm o mesmo UUID. Um erro do realce foi inscrito, a identificação de bug Cisco CSCuu85319. Você poderia conseguir o HA se você tem o mesmo número de revisão em ambos os PCRFClient0X VM.

Verifique a sincronização SVN através de PCRFClient VM

Desde que o UUID não é o mesmo através dos ambos PCRFClient VM, incorpore estes comandos:

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

Nota: Com estes comandos, você tem que dar o nome de host exato do PCRFClient01 e do PCRFClient02 VM. Você pode igualmente usar o script check_svn_sync.sh a fim verificar se o repositório SVN esteja sincronizado através de PCRFClient VM. Este script é fornecido na extremidade deste artigo.

Você pôde observar estes log de erros da série da rede do quantum (QNS). Estes Mensagens de Erro podem ser verificados com o script svn_uuid_mismatch.sh. Este script é fornecido na extremidade deste artigo.

==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 mostrado abaixo de você pode observar que o UUID é diferente através dos VM, mas as versões têm que permanecer as mesmas. Se a versão SVN em ambo o PCRFClient VM é mesma, a seguir a sincronização do repositório SVN está lá e subseqüentemente você tem a Alta disponibilidade.

===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)

Fixe a sincronização do repositório SVN

A seção anterior explicada como verificar a sincronização do repositório SVN. Esta seção discute como fixar a sincronização SVN. Supõe que PCRFClient01 é preliminar e PCRFClient02 é secundário e que o repositório PCRFClient02 SVN é fora da sincronização.

Termine estas etapas a fim fazer acima a sincronização do repositório PCRFClient02 SVN com PCRFClient01:

  1. Em PCRFClient01, desabilite o trabalho de sincronização SVN:
    crontab -e

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

    Nota: Aqui, PCRFClient02 é o nome de host do cliente do PCRFClient02 VM.

  2. Entre a PCRFClient02 e edite “/etc/httpd/conf.d/subversion.conf” e atualize-o com este texto em negrito:
    <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. No PCRFClient02 VM, incorpore este comando a fim reiniciar o serviço httpd.
    service httpd restart
  4. Em PCRFClient01, incorpore este comando a fim sincronizar os dados SVN. A sincronização do repositório SVN pôde tomar o dependente do tempo em cima do número e do tamanho das revisões.
    /usr/bin/svnsync sync http://pcrfclient02/repos-proxy-sync

    Nota: Aqui, PCRFClient02 é o nome de host do cliente de PCRFClient02 VM.

    Se os erros do fechamento são relatados, a seguir incorpore este comando e experimente de novo então o comando do svnsync:

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

    Se os erros são considerados ainda, continue Reinitialize a sincronização SVN.

  5. A fim verificar que o número de revisão para o repositório SVN é o mesmo em PCRFClient01 e em PCRFClient02, use o script de check_svn_sync.sh ou o comando CLI mencionado dentro verifica a sincronização SVN através de PCRFClient VM.
  6. Em PCRFClient01, permita o trabalho de sincronização SVN:
    crontab -e
    /usr/bin/svnsync sync http://pcrfclient02/repos-proxy-sync

Reinitialize a sincronização SVN

Execute estas etapas somente se você encontra um erro em etapa 4 no reparo da seção a sincronização do repositório SVN. Se você não encontra nenhuns erros na seção anterior, você pode ignorar estas etapas.

Nota: Alcance para fora à equipe de Suporte técnico de Cisco antes que você execute estas etapas.

  1. Antes que você reinitialize a sincronização SVN, desabilite primeiramente PCRFClient02 do svn_proxy na configuração do haproxy:
    1. Vá à libra à espera (lb02 neste exemplo) e altere “/etc/haproxy/haproxy.cfg” e comente para fora a linha negrito mostrada aqui:
      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. Vá à libra ativa (lb01 neste exemplo) e incorpore este comando a fim fazer um Failover HA:
      /etc/init.d/heartbeat restart
    3. Verifique que “haproxy/memcached/VIP” deslocou à outra libra (lb02 neste exemplo).
    4. Vá à libra à espera (agora lb01 é à espera) e altere “/etc/haproxy/haproxy.cfg” e comente para fora a linha negrito:
      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. Vá à libra ativa (agora lb02 é ativo) e incorpore este comando a fim fazer um Failover HA:
      /etc/init.d/heartbeat restart
    6. Verifique “haproxy/memcached/VIP” deslocado à outra libra (lb01 neste exemplo).
  2. Em PCRFClient02, incorpore estes comandos a fim reinitialize o diretório de repositório 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. Em PCRFClient02, crie um arquivo nomeado “PRE-revprop-mudança” no trajeto “/var/www/svn/repos/hooks/” com estes dados:
    #!/bin/sh
    #/var/www/svn/repos/hooks/pre-revprop-change
    exit 0
  4. Em PCRFClient02, incorpore estes comandos a fim mudar previamente as permissões do arquivo criado e executar igualmente o serviço httpd reinicia:
    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. Em PCRFClient01, incorpore estes comandos a fim executar a sincronização dos dados 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: No lugar de PCRFClient01 e de PCRFClient02, forneça o hostname apropriado de PCRFClient01 e de PCRFClient02 conforme sua instalação.

  6. A fim verificar se seus repositórios SVN estão sincronizados, termine as etapas verificam dentro a sincronização SVN através de PCRFClient VM.
  7. Permita PCRFClient02 do proxy SVN na configuração do haproxy. Basicamente, uncomment as linhas que você comentou para fora em etapa 1.
    1. Vá à libra à espera (lb02 neste exemplo) e altere “/etc/haproxy/haproxy.cfg” e a linha negrito do 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” deslocado à outra libra (lb02 neste exemplo).
      /etc/init.d/heartbeat restart 
    3. Verifique “haproxy/memcached/VIP” deslocado à outra libra (lb02 neste exemplo).
    4. Vai à libra à espera (agora lb01 é à espera) e altera “/etc/haproxy/haproxy.cfg” e uncomment a linha negrito mostrada aqui:
      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. Vá à libra ativa (nowlb02 é ativo) e incorpore este comando a fim terminar o Failover HA:
      /etc/init.d/heartbeat restart
    6. Verifique que “haproxy/memcached/VIP” deslocou à outra libra (lb01 neste exemplo).
  8. Em PCRFClient01, permita o trabalho de sincronização SVN:
    crontab -e/usr/bin/svnsync sync http://pcrfclient02/repos-proxy-sync

Scripts

check_svn_sync.sh

Põe por favor este script em seu sistema CP a fim verificar a sincronização SVN atravé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

Põe por favor este script em seu sistema CP a fim monitorar os mensagens de erro relacionada SVN UUID do 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

Discussões relacionadas da comunidade de suporte da Cisco

A Comunidade de Suporte da Cisco é um fórum onde você pode perguntar e responder, oferecer sugestões e colaborar com colegas.