Выйти из строя может что угодно и если это будет коммутатор с кучей вланов — будет очень грустно.
Rancid хорошо подходит для задачи бэкапа конфигов, более того, он использует систему контроля версий. Можно будет следить за изменениями в конфигурации оборудования.
Действие проводится на Ubuntu Server 14.04.2.
Установка и настройка Rancid + SVN
Устанавливаем rancid и subversion
sudo apt-get install rancid subversion
Редактируем конфиг rancid
sudo nano /etc/rancid/rancid.conf
Меняем CVSROOT=$BASEDIR/CVS; export CVSROOT на CVSROOT=$BASEDIR/SVN; export CVSROOT
RCSSYS=cvs; export RCSSYS на RCSSYS=svn; export RCSSYS
#LIST_OF_GROUPS=»sl joebobisp»; export LIST_OF_GROUPS на LIST_OF_GROUPS=»cisco-sb»
По мере использования станет понятно, нужно ли подкрутить ещё что-то.
По умолчанию, коммутаторы серии SB не поддерживаются. Но модули для работы с SB существуют .
Скачиваем
cd /var/lib/rancid/bin
sudo wget https://raw.githubusercontent.com/chrpinedo/rancid-cisco-sb/master/src/csblogin
sudo wget https://raw.githubusercontent.com/chrpinedo/rancid-cisco-sb/master/src/csbrancid
Делаем исполняемыми
sudo chmod +x csblogin csbrancid
Еще нужно подправить интерпретаторы
sudo nano csblogin
#! /usr/bin/env expect — на #! /usr/bin/expect —
sudo nano csbrancid
#! /usr/bin/env perl на #! /usr/bin/perl
Добавляем новый сценарий в «%vendortable dictionary»
sudo nano rancid-fe
вставляем ‘cisco-sb’ => ‘csbrancid’,
Теперь нужно создать конфигурацию для доступа к коммутаторам
Переключаемся на пользователя rancid
sudo su — rancid
cd /var/lib/rancid/
Создаем конфигурационный файл .cloginrc
nano .cloginrc
#cisco SB switch
add user 10.10.10.* {cisco}
add password 10.10.10.* {pass}
add method 10.10.10.* ssh
add autoenable 10.10.10.* 1
Звездочка в конце означает, что эти настройки будут использоваться для всех устройств адреса которых начинаются с 10.10.10.
Для безопасности устанавливаем права доступа:
chmod 600 .cloginrc
Создаем папки и файлы для работы нашей группы cisco-sb
./bin/rancid-cvs
Должен появиться каталог cisco-sb с файлами.
Добавляем устройства в файл router.db
nano cisco-sb/router.db
10.10.10.21:cisco-sb:up
Так же нужно включить ssh на коммутаторе. Например, в веб-интерфейсе SG300-20, галочки для включения служб находятся в Security / TCP/UDP Services
Запускаем rancid
./bin/rancid-run
Логи можно посмотреть в каталоге logs.
Бэкапы конфигов в cisco-sb/configs
Добавим задачу в cron:
0 1 * * * /var/lib/rancid/bin/rancid-run
Каждый день в час ночи Rancid будет проверять, что нового в конфигурации.
Установка и настройка Trac
Выходим из пользователя rancid
exit
Устанавливаем apache2, trac, модуль для веб-приложений написанных на питоне и инструменты apache.
sudo apt-get install apache2 trac libapache2-mod-python apache2-utils
Создаём каталог /var/trac/netconf
sudo mkdir -p /var/trac/netconf
cd /var/trac/netconf
Создаём окружение и пользователя trac с правами администратора.
sudo htpasswd -bc .htpasswd admin pass
sudo trac-admin . permission add adminusername TRAC_ADMIN
Даём доступ apache к окружению:
sudo chown -R www-data: .
sudo chmod -R 775 .
И к каталогу с SVN
sudo chgrp -R www-data /var/lib/rancid/SVN/
Редактируем конфиг trac:
sudo nano /var/trac/netconf/conf/trac.ini
Указываем расположение SVN: repository_dir = /var/lib/rancid/SVN/
Подключаем модуль поддержки SVN, для этого в конец файла вставляем
[components]
tracopt.versioncontrol.svn.* = enabled
Редактируем конфиг apache2
sudo cp /dev/null /etc/apache2/sites-available/000-default.conf
sudo nano /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerName netconf.edge-cloud.net
<Location />
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /var/trac/netconf
PythonOption TracEnvParentDir /var/trac/netconf
PythonOption TracUriRoot /
# PythonOption TracEnvIndexTemplate /var/local/trac/templates/index-template.html
PythonOption TracLocale en_US.UTF8
PythonOption PYTHON_EGG_CACHE /tmp
Order allow,deny
Allow from all
</Location>
<Location />
AuthType Basic
AuthName "trac"
AuthUserFile /var/trac/netconf/.htpasswd
Require valid-user
</Location>
</VirtualHost>
Trac будет под паролем.
Рестартуем apache
sudo service apache2 restart
Минимальная настройка Trac готова, входим в веб-интерфейс
Мой телеграм-канал .