Выйти из строя может что угодно и если это будет коммутатор с кучей вланов — будет очень грустно.

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 с файлами.

Cisco Rancid

Добавляем устройства в файл 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 готова, входим в веб-интерфейс

Trac SVN

Trac SVN 2

Мой телеграм-канал .