Sans fil : Cisco Policy Suite for Wi-Fi

Non-concordance SVN UUID et synchronisation des données SVN

18 octobre 2016 - Traduction automatique
Autres versions: PDFpdf | Anglais (21 avril 2016) | Commentaires

Introduction

Ce document décrit comment synchroniser le référentiel du contrôle de subversion (SVN) entre PCRFClient01 et PCRFClient02.

Contribué par Aravindhan Balasubramanian, ingénieur TAC Cisco.

NON-CONCORDANCE SVN UUID

Toutes les configurations de politique dans le builder de stratégie (PB) sont enregistrées comme référentiel SVN. Ainsi, afin d'avoir la Haute disponibilité (ha) que vous devez avoir le même identifiant unique universel SVN (UUID) à travers chacun des deux virtual machine de PCRFClient (VMs). Cependant, la version 7.X de la suite de stratégie de Cisco (CPS) n'a pas le même UUID à travers des VMs de PCRFClient. C'est-à-dire, des versions plus élevées CPS ont le même UUID. Une bogue d'amélioration a été écrite, l'ID de bogue Cisco CSCuu85319. Vous pourriez réaliser l'ha si vous avez le même nombre de révision dans les deux VMs PCRFClient0X.

Vérifiez la synchronisation SVN à travers des VMs de PCRFClient

Puisque l'UUID n'est pas identique à travers les deux VMs de PCRFClient, sélectionnez ces commandes :

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

Remarque: Avec ces commandes, vous devez donner le nom d'hôte précis des VMs PCRFClient01 et PCRFClient02. Vous pouvez également employer le script check_svn_sync.sh afin de vérifier si le référentiel SVN est synchronisé à travers des VMs de PCRFClient. Ce script est fourni à la fin de cet article.

Vous pourriez noter ces journaux des erreurs de la suite de réseau de Quantum (QNS). Ces messages d'erreur peuvent être vérifiés avec le script svn_uuid_mismatch.sh. Ce script est fourni à la fin de cet article.

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

Comme affiché ci-dessous vous peut observer que l'UUID est différent à travers des VMs, mais les versions doivent demeurer les mêmes. Si la version SVN dans les les deux les VMs de PCRFClient sont même, alors la synchronisation de référentiel SVN est là et ultérieurement vous avez la Haute disponibilité.

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

Réparez la synchronisation de référentiel SVN

La section précédente expliquée comment vérifier la synchronisation de référentiel SVN. Cette section discute comment réparer la synchronisation SVN. Supposez que PCRFClient01 est primaire et PCRFClient02 est secondaire et que le référentiel PCRFClient02 SVN est hors de sync.

Terminez-vous ces étapes afin de composer le sync de référentiel PCRFClient02 SVN avec PCRFClient01 :

  1. Sur PCRFClient01, désactivez le travail de sync SVN :
    crontab -e

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

    Remarque: Ici, PCRFClient02 est le nom d'hôte du client de la VM PCRFClient02.

  2. Ouvrez une session à PCRFClient02 et éditez « /etc/httpd/conf.d/subversion.conf » et mettez- à jourle avec ce texte bolded :
    <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. Sur la VM PCRFClient02, sélectionnez cette commande afin de redémarrer le service httpd.
    service httpd restart
  4. Sur PCRFClient01, sélectionnez cette commande afin de synchroniser les données SVN. La synchronisation de référentiel SVN pourrait prendre dépendant du temps sur le nombre et la taille de révisions.
    /usr/bin/svnsync sync http://pcrfclient02/repos-proxy-sync

    Remarque: Ici, PCRFClient02 est le nom d'hôte du client de la VM PCRFClient02.

    Si des erreurs de verrouillage sont signalées, alors sélectionnez cette commande et puis relancez la commande de svnsync :

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

    Si les erreurs sont encore vues, poursuivez pour réinitialiser la synchronisation SVN.

  5. Afin de vérifier que le nombre de révision pour le référentiel SVN est identique dans PCRFClient01 et PCRFClient02, utilisez le script de check_svn_sync.sh ou la commande CLI mentionnée dedans vérifient la synchronisation SVN à travers la VM de PCRFClient.
  6. Sur PCRFClient01, activez le travail de sync SVN :
    crontab -e
    /usr/bin/svnsync sync http://pcrfclient02/repos-proxy-sync

Réinitialisez la synchronisation SVN

Exécutez ces étapes seulement si vous rencontrez une erreur dans l'étape 4 dans la difficulté de section la synchronisation de référentiel SVN. Si vous ne rencontrez aucune erreur dans la section précédente, vous pouvez ignorer ces étapes.

Remarque: Atteignez à l'équipe de support technique de Cisco avant que vous exécutiez ces étapes.

  1. Avant que vous réinitialisiez le sync SVN, désactivez d'abord PCRFClient02 de svn_proxy dans la configuration de haproxy :
    1. Allez au standby livre (lb02 dans cet exemple) et modifiez « /etc/haproxy/haproxy.cfg » et commentez la ligne bolded affichée ici :
      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. Allez à livre active (lb01 dans cet exemple) et sélectionnez cette commande afin de faire un Basculement ha :
      /etc/init.d/heartbeat restart
    3. Vérifiez que « haproxy/memcached/VIP » a décalé à l'autre livre (lb02 dans cet exemple).
    4. Allez au standby livre (maintenant lb01 est de réserve) et modifiez « /etc/haproxy/haproxy.cfg » et commentez la ligne bolded :
      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. Allez à livre active (maintenant lb02 est en activité) et sélectionnez cette commande afin de faire un Basculement ha :
      /etc/init.d/heartbeat restart
    6. Vérifiez « haproxy/memcached/VIP » décalé à l'autre livre (lb01 dans cet exemple).
  2. Sur PCRFClient02, sélectionnez ces commandes afin de réinitialiser le répertoire de référentiel 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. Sur PCRFClient02, créez un fichier nommé « pré-revprop-modification » dans le chemin « /var/www/svn/repos/hooks/ » avec ces données :
    #!/bin/sh
    #/var/www/svn/repos/hooks/pre-revprop-change
    exit 0
  4. Sur PCRFClient02, sélectionnez ces commandes afin de changer les autorisations du fichier précédemment créé et assurer également le service httpd redémarre :
    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. Sur PCRFClient01, sélectionnez ces commandes afin d'exécuter la synchronisation des données SVN :
    /usr/bin/svnsync init http://pcrfclient02/repos-proxy-sync
    http:// pcrfclient01/repos-proxy-sync
    /usr/bin/svnsync sync http:// pcrfclient02/repos-proxy-sync

    Remarque: Au lieu de PCRFClient01 et de PCRFClient02, fournissez le nom d'hôte approprié de PCRFClient01 et de PCRFClient02 selon votre installation.

  6. Afin de vérifier si vos référentiel SVN sont synchronisés, terminez-vous les étapes vérifient dedans la synchronisation SVN à travers la VM de PCRFClient.
  7. Activez PCRFClient02 du proxy SVN dans la configuration de haproxy. Fondamentalement, uncomment les lignes que vous avez commentées dans l'étape 1.
    1. Allez au standby livre (lb02 dans cet exemple) et modifiez « /etc/haproxy/haproxy.cfg » et ligne bolded d'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. Vérifiez « haproxy/memcached/VIP » décalé à l'autre livre (lb02 dans cet exemple).
      /etc/init.d/heartbeat restart 
    3. Vérifiez « haproxy/memcached/VIP » décalé à l'autre livre (lb02 dans cet exemple).
    4. Allez au standby livre (maintenant lb01 est de réserve) et modifiez « /etc/haproxy/haproxy.cfg » et uncomment la ligne bolded affichée ici :
      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. Allez à livre active (nowlb02 est en activité) et sélectionnez cette commande afin de se terminer le Basculement ha :
      /etc/init.d/heartbeat restart
    6. Vérifiez que « haproxy/memcached/VIP » a décalé à l'autre livre (lb01 dans cet exemple).
  8. Sur PCRFClient01, activez le travail de sync SVN :
    crontab -e/usr/bin/svnsync sync http://pcrfclient02/repos-proxy-sync

Scripts

check_svn_sync.sh

Veuillez mettre ce script dans votre système CPS afin de vérifier la synchronisation SVN à travers des VMs de PCRFClient.

#!/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

Veuillez mettre ce script dans votre système CPS afin de surveiller les messages d'erreur associés par UUID SVN des différentes VMs QNS.

#!/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


Document ID: 119326