Оглавление
Rancid — сборник исполняемых файлов, написанных на Perl и Expect, для автоматизации сбора конфигураций с сетевого оборудования. Появилась необходимость сбора конфигураций не только с коммутаторов, роутеров и маршрутизаторов Cisco\Mikrotik, но WLC контроллеров. По сравнению с предыдущей версией, в указанной версии поддержка WLC уже есть.
Установка
Подключение репозитория Epel
1 2 3 |
yum install epel-release |
Столкнулся с проблемой при установке Rancid
1 2 3 4 5 6 7 8 9 10 |
yum install rancid ... --> Обработка зависимостей: perl(newgetopt.pl) пакета: rancid-3.2-2.el7.x86_64 --> Проверка зависимостей окончена Ошибка: Пакет: rancid-3.2-2.el7.x86_64 (epel) Необходимо: perl(newgetopt.pl) Вы можете попробовать --skip-broken чтобы обойти проблему Вы можете попробовать запустить: rpm -Va --nofiles --nodigest |
Решение такое (вроде ни чего не развалилось и все заработало)
1 2 3 4 |
yum install rpmrebuild rpmrebuild -e perl-Getopt-Long-2.40-2.el7.noarch |
Добавил строку Provides: perl(newgetopt.pl) перед Provides: perl(Getopt::Long) = 2.40 и собрал пакет
1 2 3 4 |
Do you want to continue ? (y/N) y result: /root/rpmbuild/RPMS/noarch/perl-Getopt-Long-2.40-2.el7.noarch.rpm |
Удалил существующий пакет perl-Getopt-Long
1 2 3 |
rpm -e --nodeps perl-Getopt-Long |
И установил собранный
1 2 3 |
rpm -ivh /root/rpmbuild/RPMS/noarch/perl-Getopt-Long-2.40-2.el7.noarch.rpm |
Установка дополнительных пакетов
1 2 3 |
yum install cvs telnet |
Инсталляция Rancid прошла успешно
Настройка
Настроим /etc/rancid/rancid.conf
1 2 3 4 5 6 7 8 9 10 |
#Домашняя директория BASEDIR=/var/rancid; export BASEDIR # Группы устройств LIST_OF_GROUPS="WLC Cisco Mikrotik" # Количество потоков PAR_COUNT=25; export PAR_COUNT |
Создадим файл авторизации и зададим права на него
1 2 3 4 5 |
/var/rancid/.cloginrc chmod 600 /var/rancid/.cloginrc chown rancid:rancid /var/rancid/.cloginrc |
Содержимое /var/rancid/.cloginrc
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# Для WLC контроллера add user 192.168.15.1 root add password 192.168.15.1 PASSWORD_ROOT add noenable 192.168.15.1 1 add method 192.168.15.1 ssh add user 192.168.15.10 root add password 192.168.15.10 PASSWORD_ROOT add noenable 192.168.15.1 10 add method 192.168.15.10 ssh # Для сети Cisco # Зададим для подсетей основной пароль. Второй пароль на enable, там, где это необходимо add password 192.168.*.* PASS1 EN_PASS add user 192.168.*.* user_cisco # Сеть Mikrotik add user 10.10.*.* admin add password 10.10.*.* PASS_ADMIN # Для коммутаторов <span id="titlecisco2">SG300-10 10-Port Gigabit Managed Switch - нестандартное приглашение на авторизацию </span> # И без Enable add noenable 192.168.51.192 1 add method 192.168.51.192 telnet add userprompt 192.168.51.192 {"\User |
Возможно для совместимости остался файл /etc/rancid/rancid.types.conf в исполняемых файлах. Его копировать не обязательно
1 2 3 |
cp /etc/rancid/rancid.types.base /etc/rancid/rancid.types.conf |
Заходим под пользователем rancid и создаем репозитории
1 2 3 4 5 |
su - rancid cd /usr/libexec/rancid/ ./rancid-cvs |
Если что то не заводиться, можно посмотреть в логе /var/log/rancid в чем ошибка. Установка прав на файлы очень важный момент. Необходимо верно устанавливать разрешения. Так же стоит обратить внимание на PID-файл, который формируется при запуски задания — .Cisco.run.lock Он не удаляется при ошибочном завершении rancid-run, например при перезагрузке системы. Стоит подумать, о создании задания, по его удалению. Для того что бы пересоздать репозиторий. удаляем все подкаталоги в /var/rancid и повторно выполняем.
1 2 3 4 5 |
su - rancid cd /usr/libexec/rancid/ ./rancid-cvs |
Добавим устройства в группы
/var/rancid/Cisco/router.db
192.168.8.1;cisco;up
192.168.8.3;cisco;up
192.168.8.4;cisco;up
/var/rancid/Mikrotik/router.db
10.10.58.3;mikrotik;up;»Mikrotik»
10.10.58.21;mikrotik;up;»Mikrotik»
10.10.58.22;mikrotik;up;»Mikrotik»
10.10.58.23;mikrotik;up;»Mikrotik»
10.10.58.20;mikrotik;up;»Mikrotik»
/var/rancid/WLC/router.db
192.168.15.1;cisco-wlc5;up;»WLC-DUST»
192.168.15.10;cisco-wlc5;up;»WLC-DUST»
Установка и настройка ViewVC
1 2 3 |
yum install viewvc viewvc-httpd-wsgi |
1 2 3 |
chmod 751 /var/rancid |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
cat /etc/httpd/conf.d/viewvc-wsgi.conf | egrep -v '(#|^$)' WSGIScriptAlias /viewvc /usr/lib/python2.7/site-packages/viewvc/bin/wsgi/viewvc.wsgi Alias /viewvc-static /usr/share/viewvc/templates/docroot <Directory /usr/lib/python2.7/site-packages/viewvc/bin/wsgi> Options -Indexes <Files viewvc.wsgi> <IfModule mod_authz_core.c> Require all granted </IfModule> </Files> </Directory> <Directory /usr/share/viewvc/templates/docroot> Options -Indexes <IfModule mod_authz_core.c> Require all granted </IfModule> </Directory> |
1 2 3 4 5 6 |
cvs_roots = cvsroot: /var/rancid/CVS/ root_parents = /var/rancid/CVS/ : cvs service httpd restart |
http://ip_server_rancid/viewvc
Дополнительно
Иногда бывает, что по той или иной причине rancid повисает, для этого в cron добавил завершение процессов и удаление lock файлов
1 2 3 4 5 6 7 8 9 |
0 0 * * * rancid killall -9 /usr/bin/expect 0 0 * * * rancid killall -9 control_rancid 0 0 * * * rancid killall -9 rancid-run 0 0 * * * rancid rm -f /tmp/.Mikrotik.run.lock 0 0 * * * rancid rm -f /tmp/.Cisco.run.lock 0 0 * * * rancid rm -f /tmp/.WLC.run.lock 0 8,12,16,20 * * * rancid /usr/libexec/rancid/rancid-run |