Беспроводные сети : Cisco Policy Suite for Wi-Fi

SVN несоответствие UUID и синхронизация данных SVN

21 октября 2016 - Машинный перевод
Другие версии: PDF-версия:pdf | Английский (21 апреля 2016) | Отзыв

Введение

Этот документ описывает, как синхронизировать контроль за Подрывной деятельностью (SVN) репозиторий между PCRFClient01 и PCRFClient02.

Внесенный Aravindhan Balasubramanian, специалистом службы технической поддержки Cisco.

SVN НЕСООТВЕТСТВИЕ UUID

Все конфигурации политики в разработчике политики (PB) сохранены как репозиторий SVN. Так, для имения высокой доступности (HA), у вас должен быть тот же SVN Уникальный идентификатор Universal (UUID) через обе из Виртуальных машин PCRFClient (VM). Однако Версия 7. X Комплекта политики Cisco (CPS) не имеет того же UUID через VM PCRFClient. Т.е. более высокие версии CPS имеют тот же UUID. Дефект усовершенствования был введен, идентификатор ошибки Cisco CSCuu85319. Вы могли достигнуть HA , если у вас есть тот же номер версии в обоих VM PCRFClient0X.

Проверьте синхронизацию SVN через VM PCRFClient

Так как UUID не является тем же через обоих VM PCRFClient, введите эти команды:

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

Примечание: С этими командами необходимо дать точное имя хоста PCRFClient01 и VM PCRFClient02. Можно также использовать сценарий check_svn_sync.sh, чтобы проверить, синхронизируется ли репозиторий SVN через VM PCRFClient. Этот сценарий предоставлен в конце этой статьи.

Вы могли бы заметить эти журналы ошибок Комплекта сети Quantum (QNS). Эти сообщения об ошибках могут быть проверены со сценарием svn_uuid_mismatch.sh. Этот сценарий предоставлен в конце этой статьи.

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

Как показано ниже вас может заметить, что UUID является другим через VM, но версии должны остаться тем же. Если версия SVN и в VM PCRFClient является тем же, то синхронизация репозитория SVN там, и впоследствии у вас есть высокая доступность.

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

Исправьте синхронизацию репозитория SVN

Предыдущий раздел объяснил, как проверить синхронизацию репозитория SVN. В этом разделе рассматриваются, как исправить синхронизацию SVN. Предположите, что PCRFClient01 является основным, и PCRFClient02 вторичен и что репозиторий SVN PCRFClient02 вне синхронизования.

Выполните эти шаги для составления синхронизования репозитория SVN PCRFClient02 с PCRFClient01:

  1. На PCRFClient01 отключите задание синхронизования SVN:
    crontab -e

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

    Примечание: Здесь, PCRFClient02 является именем хоста клиента PCRFClient02 VM.

  2. Войдите в систему PCRFClient02 и отредактируйте "/etc/httpd/conf.d/subversion.conf" и обновите его с этим полужирным текстом:
    <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. На PCRFClient02 VM введите эту команду для перезапуска сервиса HTTPD.
    service httpd restart
  4. На PCRFClient01 введите эту команду для синхронизации данных SVN. Синхронизация репозитория SVN могла бы занять время зависящая от номера и размера пересмотров.
    /usr/bin/svnsync sync http://pcrfclient02/repos-proxy-sync

    Примечание: Здесь, PCRFClient02 является именем хоста клиента PCRFClient02 VM.

    Если об ошибках блокировки сообщают, то введите эту команду и затем повторите svnsync команду:

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

    Если ошибки все еще замечены, продолжают Повторно инициализировать Синхронизацию SVN.

  5. Чтобы проверить, что номер версии для репозитория SVN является тем же в PCRFClient01 и PCRFClient02, используйте check_svn_sync.sh сценарий , или команда CLI, упомянутая в, Проверяют Синхронизацию SVN Через VM PCRFClient.
  6. На PCRFClient01 включите задание синхронизования SVN:
    crontab -e
    /usr/bin/svnsync sync http://pcrfclient02/repos-proxy-sync

Повторно инициализируйте синхронизацию SVN

Выполните эти шаги, только если вы встречаетесь, ошибка в шаге 4 в раздел Исправляют Синхронизацию репозитория SVN. Если вы не встречаетесь ни с какими ошибками в предыдущем разделе, можно проигнорировать эти шаги.

Примечание: Обратитесь к команде технической поддержки Cisco перед выполнением этих шагов.

  1. Прежде чем вы будете повторно инициализировать синхронизование SVN, сначала будете отключать PCRFClient02 от svn_proxy в haproxy конфигурации:
    1. Перейдите к резервному lb (lb02 в данном примере) и модифицируйте "/etc/haproxy/haproxy.cfg" и прокомментируйте полужирную линию, показанную здесь:
      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. Перейдите к активному lb (lb01 в данном примере) и введите эту команду, чтобы сделать аварийное переключение HA:
      /etc/init.d/heartbeat restart
    3. Проверьте, что "haproxy/memcached/VIP" сместился к другому lb (lb02 в данном примере).
    4. Перейдите к резервному lb (теперь lb01, резерв), и модифицируйте "/etc/haproxy/haproxy.cfg" и прокомментируйте полужирную линию:
      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. Перейдите к активному lb (теперь lb02, активно), и введите эту команду, чтобы сделать аварийное переключение HA:
      /etc/init.d/heartbeat restart
    6. Проверьте "haproxy/memcached/VIP", смещенный к другому lb (lb01 в данном примере).
  2. На PCRFClient02 введите эти команды, чтобы повторно инициализировать каталог репозитория 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. На PCRFClient02 создайте файл, названный "pre-revprop-change" в пути "/var/www/svn/repos/hooks /" с этими данными:
    #!/bin/sh
    #/var/www/svn/repos/hooks/pre-revprop-change
    exit 0
  4. На PCRFClient02 введите эти команды, чтобы изменить разрешения ранее созданного файла и также выполнить перезапуски сервиса 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. На PCRFClient01 введите эти команды для выполнения синхронизации данных SVN:
    /usr/bin/svnsync init http://pcrfclient02/repos-proxy-sync
    http:// pcrfclient01/repos-proxy-sync
    /usr/bin/svnsync sync http:// pcrfclient02/repos-proxy-sync

    Примечание: Вместо PCRFClient01 и PCRFClient02, предоставьте соответствующее имя хоста PCRFClient01 и PCRFClient02 согласно вашей настройке.

  6. Чтобы проверить, синхронизируются ли ваши репозитории SVN, выполняют шаги в, Проверяют Синхронизацию SVN Через VM PCRFClient.
  7. Включите PCRFClient02 от прокси SVN в haproxy конфигурации. В основном не прокомментируйте линии, которые вы прокомментировали в шаге 1.
    1. Перейдите к резервному lb (lb02 в данном примере) и модифицируйте "/etc/haproxy/haproxy.cfg" и не прокомментируйте полужирную линию:
      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. Проверьте "haproxy/memcached/VIP", смещенный к другому lb (lb02 в данном примере).
      /etc/init.d/heartbeat restart 
    3. Проверьте "haproxy/memcached/VIP", смещенный к другому lb (lb02 в данном примере).
    4. Перейдите к резервному lb (теперь lb01, резерв), и модифицируйте "/etc/haproxy/haproxy.cfg" и не прокомментируйте полужирную линию, показанную здесь:
      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. Перейдите к активному lb (nowlb02, активно), и введите эту команду для завершения аварийного переключения HA:
      /etc/init.d/heartbeat restart
    6. Проверьте, что "haproxy/memcached/VIP" сместился к другому lb (lb01 в данном примере).
  8. На PCRFClient01 включите задание синхронизования SVN:
    crontab -e/usr/bin/svnsync sync http://pcrfclient02/repos-proxy-sync

Сценарии

check_svn_sync.sh

Поместите этот сценарий в свою систему CPS для проверки синхронизации SVN через VM 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

Поместите этот сценарий в свою систему CPS для мониторинга SVN соответствующие сообщения об ошибках UUID от отдельных VM 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