пятница, 16 августа 2013 г.

Резервная копия всех сетевых устройств Rancid


Сайт продукта http://www.shrubbery.net/rancid/

Установка на CentOS 6

$ wget -c ftp://ftp.shrubbery.net/pub/rancid/rancid-2.3.8.tar.gz
$ yum install expect make cvs telnet
# Задаём каталог где хранить bin и db с логами
$ ./configure --prefix=/etc/rancid --localstatedir=/var/log/rancid

# Если нет checkinstall'a, то делаем $ make install и пропускаем установку rpm пакета
$ make
$ checkinstall --nodoc --install=yes -y --exclude=/selinux
/root/rpmbuild/RPMS/x86_64/rancid-2.3.8-1.x86_64.rpm
# Для установки:
$ rpm -i rancid-2.3.8-1.x86_64.rpm
# Для удаления:
$ rpm -e rancid-2.3.8-1

# Добавление группы и пользователя
$ groupadd netadm
$ useradd -g netadm -c "Networking Backups" -d /etc/rancid rancid

# Копируем конфигурационный файл и задаем права, в которых будут хранится пароли для подключения к устройствам
$ cp /etc/rancid/share/rancid/cloginrc.sample /etc/rancid/.cloginrc
$ chmod 0640 /etc/rancid/.cloginrc
$ chown -R rancid:netadm /etc/rancid/
$ chmod 770 /etc/rancid/
$ ls -la

# Задаём группу
$ vi /etc/rancid/etc/rancid.conf
LIST_OF_GROUPS="networking"

# Добавим почту
$ vi /etc/aliases

rancid-admin-networking: rancid-networking
rancid-networking: noc
noc: admin@company.ru

# Перезагружаем альяс
$ newaliases

# Зайдём под учёткой rancid и создадим базу
$ su – rancid
$ cd /etc/rancid/bin/
$ ./rancid-cvs

# Забиваем пароли для устройств (Рассмотрено четыре разных вариант, будьте внимательны, пароль со знаком $ нужно заключать в фигурные скобки)
$ vi /etc/rancid/.cloginrc
# R1
add user 172.16.0.1
add password 172.16.0.1 password

# R2
add user 172.16.0.2 login
add password 172.16.0.2 password

# R3
add user 172.16.0.3 login
add password 172.16.0.3 password enpassword

# R4
add user 172.16.0.* login
add password 172.16.0.* {pa$$word} {enpa$$word}

# Проверка подключения
$ cd /etc/rancid/bin/
$ ./clogin 172.16.10.1

# Если подключение прошло, то дальше нужно добавить наши свичи в базу. Указывается IP, производитель, статус (подключаться/неподключаться) и маленький коментарий для себя
$ vi /var/log/rancid/networking/router.db
172.16.0.14:cisco:up:R4
172.16.0.13:cisco:up:R3
172.16.0.12:hp:up:R2
172.16.0.11:hp:down:R1

# Установка web морды для отслеживания информации из броузера
# Install RCS
$ yum install rcs

# Install ViewVC
$ wget http://viewvc.tigris.org/files/documents/3330/49275/viewvc-1.1.20.tar.gz
$ tar zxvf viewvc-1.1.20.tar.gz
$ ./viewvc-install
/etc/viewvc

$ vi /etc/viewvc/viewvc.conf
root_parents = /var/log/rancid/CVS : cvs
rcs_dir = /usr/bin/
address = <a href="mailto:admin@company.ru">IT Support</a>

$ cp /etc/viewvc/bin/cgi/*.cgi /var/www/cgi-bin/
$ chmod +x /var/www/cgi-bin/*.cgi
$ chown apache:apache /var/www/cgi-bin/*.cgi

$ vi /etc/httpd/conf/httpd.conf
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
ScriptAlias /viewvc /var/www/cgi-bin/viewvc.cgi
ScriptAlias /query /var/www/cgi-bin/query.cgi

$ service httpd restart
$ cd /etc/viewvc/bin
$ ./make-database

$ vi /etc/viewvc/viewvc.conf
[cvsdb]
enabled = 1
host = localhost
port = 3306
database_name = ViewVC
user = username
passwd = passsword
readonly_user = username
readonly_passwd = password
row_limit = 1000

$ ./cvsdbadmin rebuild /var/log/rancid/CVS/CVSROOT/

# Создаем правило для apache
$ vi /etc/sysconfig/iptables
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p udp --dport 80 -j ACCEPT

# Создаем расписание. Запуск каждый час
$ vi /etc/crontab
# Run the Script every hours
  1  *  *  *  * rancid /etc/rancid/bin/rancid-run

# Deleting old logs
# 50 23 *  *  * root /usr/bin/find /var/log/rancid/logs -type f -mtime +2 -exec rm {} \;

# Перезагрузка службы
$ service crond restart


У меня бэкапятся только CISCO. HP почему-то не хочет. Если у кого работает для HP, прошу отписать..

11 комментариев:

  1. ./rancid-cvs
    cvs [init aborted]: cannot make directory /var/log/rancid/CVS: Permission denied
    mkdir: cannot create directory `logs': Permission denied
    mkdir: cannot create directory `/var/log/rancid/networking': Permission denied
    ./rancid-cvs: line 134: cd: /var/log/rancid/networking: No such file or directory
    cvs [import aborted]: /var/log/rancid/CVS/CVSROOT: No such file or directory
    cvs [checkout aborted]: /var/log/rancid/CVS/CVSROOT: No such file or directory
    ./rancid-cvs: line 147: cd: /var/log/rancid/networking: No such file or directory
    mkdir: cannot create directory `configs': Permission denied
    cvs [add aborted]: /var/log/rancid/CVS/CVSROOT: No such file or directory
    cvs [commit aborted]: /var/log/rancid/CVS/CVSROOT: No such file or directory
    touch: cannot touch `routers.all': Permission denied
    touch: cannot touch `routers.down': Permission denied
    touch: cannot touch `routers.up': Permission denied
    touch: cannot touch `router.db': Permission denied
    cvs [add aborted]: /var/log/rancid/CVS/CVSROOT: No such file or directory
    cvs [commit aborted]: /var/log/rancid/CVS/CVSROOT: No such file or directory

    ОтветитьУдалить
  2. От пользователя rancid запускаете?
    Покажите какие права имеет файл

    ОтветитьУдалить
  3. Запускаю скрипт от пользователя "rancid";

    -rwxr-xr-x 1 rancid netadm 4662 Oct 26 05:10 rancid-cvs

    ОтветитьУдалить
  4. Заработало вот так:
    chown -R rancid:netadm /var/log/rancid/

    ОтветитьУдалить
  5. Тут:

    /var/log/rancid/networking/configs

    не появляется ни одного бекапа циски после запущенной вручную команды /etc/rancid/bin/rancid-run (от пользователя rancid)

    help!)

    ОтветитьУдалить
  6. Должны появиться
    172.16.0.1
    172.16.0.2
    172.16.0.3
    172.16.0.4

    Проверка подключения работает.
    # Проверка подключения
    $ cd /etc/rancid/bin/
    $ ./clogin 172.16.0.1

    на циску телнетится

    ОтветитьУдалить
  7. Проходит? /etc/rancid/bin/clogin IP_SWITCH
    Прописана ли база с адресами оборудования? /var/log/rancid/networking/router.db

    ОтветитьУдалить
  8. Так /etc/rancid/bin/clogin IP_SWITCH подключается;
    база router.db прописана

    ОтветитьУдалить
  9. доброго дня!
    я обновил rancid до версии 3
    теперь в третьей версии перестали опрашиваться маршрутизаторы Huawei. кто нибудь сталкивался с такой проблемой?

    заранее спасибо!

    ОтветитьУдалить
  10. Всем доброго дня!
    Вопрос касательно записи спарсенных данных в файл. Опрашивать предполагается корзины Alcatel ISAM 7302. Конфиг корзины разбит на блоки примерно так:
    configure
    #-------------------------------------------------------------
    echo "ip"
    #-------------------------------------------------------------
    ip
    vlan-bind 906 layer3-itf 0
    exit
    vrf 1 name routed
    mode router
    network-itf 906
    arp-policy trusted
    unnumbered
    exit
    exit
    shub
    vrf 0 name defaultVRF slow-path-mode
    routing-option
    exit
    exit
    vrf 1 name routed fast-path-mode:ena-user-user-com
    routing-option
    exit
    exit
    arp
    cache-retry-time 10
    exit
    exit
    exit

    На Гитхабе (https://github.com/buraglio/alurancid) был найден более-менее рабочий скрипт для маршрутизаторов 77-й серии. Скрипт логинится на корзине, отправляет команду, парсит и пишет в файл. Но пишет криво:

    configure
    #--------------------------------------------------------------
    echo "ip"
    #--------------------------------------------------------------
    - [1D\ [1D| [1D/ [1D- [1D\ [1D| [1D/ [1D- [1D\ [1D| [1D/ [1D- [1D\ [1D| [1D [1Dip
    vlan-bind 906 layer3-itf 0
    - [1D\ [1D| [1D/ [1D- [1D\ [1D| [1D/ [1D- [1D\ [1D| [1D/ [1D- [1D\ [1D| [1D/ [1D- [1D\ [1D| [1D/ [1D [1Dexit
    vrf 1 name routed
    mode router
    - [1D\ [1D| [1D/ [1D- [1D\ [1D [1D network-itf 906
    arp-policy trusted
    unnumbered
    - [1D\ [1D| [1D/ [1D- [1D\ [1D| [1D/ [1D [1D exit
    - [1D\ [1D| [1D/ [1D [1Dexit
    shub
    vrf 0 name defaultVRF slow-path-mode
    routing-option
    exit
    - [1D\ [1D [1D exit
    vrf 1 name routed fast-path-mode:ena-user-user-com
    routing-option
    exit
    exit
    arp
    cache-retry-time 10
    exit
    exit
    exit

    Не силён в Перле, да и вообще в языках программирования... Подскажите пожалуйста, что за дрянь такая?..
    Спасибо!

    ОтветитьУдалить
    Ответы
    1. В общем, проблема была вот в чём: при выводе конфигурации маршрутизатор иногда "подвисал", при этом в окне консоли крутился символ ожидания - так называемый "пропеллер": \-/-\-/ - вот этот "пропеллер" и парсился скриптом в файл вывода в виде указанной выше белиберды.
      Подсказали мне решение - работает замечательно: в скрипт alurancid после строки
      tr/\015//d;
      добавляем строку:
      s/(\W\S\S)1D//gs;
      И "пропеллер" больше не пишется в файл вывода.

      Удалить