Найти в Дзене
Linux | Network | DevOps

Бэкап конфигураций Eltex через Oxidized — без лишних телодвижений

Oxidized - это универсальное решение, поддерживающее более 130 видов
устройств от различных вендоров, поэтому достаточно установить и
настроить его один раз и использовать затем без оглядки на применяемое
оборудование. Это значительно удобнее, чем решения, предназначенные для
оборудования какого-либо отдельного производителя. Для настройки мы будем использовать Ubuntu 22.04 LTS, коммутатор Eltex 2308B. Oxidized написан на Ruby и поэтому его установка отличается от привычной пользователям Debian. Начнем с установки необходимых зависимостей: apt install ruby ruby-dev libsqlite3-dev libssl-dev pkg-config cmake libssh2-1-dev libicu-dev zlib1g-dev g++ libyaml-dev Устанавливаем Oxidized через RubyGems gem install oxidized gem install oxidized-script oxidized-web gem install psych Далее устанавливаем Git для хранения конфигураций и контроля изменений в них: apt install git Создаем пользователя для oxidized useradd -s /bin/bash -m oxidized Делаем тестовый вход su oxidized oxidized exit

Oxidized - это универсальное решение, поддерживающее более 130 видов
устройств от различных вендоров, поэтому достаточно установить и
настроить его один раз и использовать затем без оглядки на применяемое
оборудование. Это значительно удобнее, чем решения, предназначенные для
оборудования какого-либо отдельного производителя.

Для настройки мы будем использовать Ubuntu 22.04 LTS, коммутатор Eltex 2308B.

Oxidized написан на Ruby и поэтому его установка отличается от привычной пользователям Debian. Начнем с установки необходимых зависимостей:

apt install ruby ruby-dev libsqlite3-dev libssl-dev pkg-config cmake libssh2-1-dev libicu-dev zlib1g-dev g++ libyaml-dev

Устанавливаем Oxidized через RubyGems

gem install oxidized

gem install oxidized-script oxidized-web

gem install psych

Далее устанавливаем Git для хранения конфигураций и контроля изменений в них:

apt install git

Создаем пользователя для oxidized

useradd -s /bin/bash -m oxidized

Делаем тестовый вход

su oxidized

oxidized

exit

Прежде всего зададим имя и пароль по умолчанию с которыми oxidized будет соединяться с сетевыми устройствами. Рекомендую использовать для этого отдельного пользователя с нестандартным именем, которого потом следует завести на всех сетевых устройствах.

В нашем случае

0xidiZed // P@$$w0rD

Не забываем добавить привилегий пользователю на коммутаторе, в противном случае - работать не будет.

username 0xidiZed password P@$$w0rD privilege 15

Правим файл конфигурации Oxidized по адресу

~oxidized/.config/oxidized/config

-2

исправляем username | password

изменяем model:eltex

меняем интервалы запроса (interval:86400) для сохранения конфигурации раз в сутки

input - изменяем с telnet на ssh, как более безопасный

-3

output отвечает за хранение собранной с устройств информации о конфигурации, мы будем использовать Git, поэтому конфигурация будет выглядеть следующим образом:

output:

default: git

git:

user: oxidized

email: oxidized@localhost.localdomain

repo: "/home/oxidized/.config/oxidized/devices.git"

Сами ip адреса коммутаторов задаем файле базы данных роутеров (проще говоря файл csv с разделителем : ) расположенный по пути

"/home/oxidized/.config/oxidized/router.db"

создаем необходимый файл

mcedit ~oxidized/.config/oxidized/router.db

В этом файле добавляем наш коммутатор

TstRouter:192.168.72.1

Если необходимо задать параметры авторизации отличающиеся от глобальных, задаем их

TstRouter:192.168.72.1:User:Password

Далее, нам нужно создать юнит Systemd для работы в качестве службы, для этого копируем готовый шаблон:

cp /var/lib/gems/3.0.0/gems/oxidized-0.30.1/extra/oxidized.service /etc/systemd/system

Внимательно смотрим на номер версии, в нашем случае oxidized-0.30.1

Перечитаем содержимое systemd:

systemctl daemon-reload

Создадим директорию в /run:

mkdir /run/oxidized

И сделаем пользователя oxidized ее владельцем:

chown oxidized:oxidized /run/oxidized

Добавляем службу в автозагрузку:

systemctl enable oxidized

И запускаем ее:

systemctl start oxidized

Проверяем работу службы

systemctl status oxidized

-4

Также проверяем, что служба работает на правильном порту

ss -tpln

-5

Настраиваем git:

git config --global user.name "oxidized"

git config --global user.email "oxidized@localhost.localdomain"

git init oxidized.git

Устанавливаем и настраиваем NGINX (oxidized не имеет своего веб сервера).

apt install nginx

перезаписываем конфигурацию по умолчанию

cat /var/lib/gems/3.0.0/gems/oxidized-0.30.1/extra/oxidized.nginx > /etc/nginx/sites-available/default

перезапускаем nginx

nginx -s reload

Заходим на страницу oxidized

-6

Если все настроили правильно - видим аналогичную картинку.

Проверяем работу (сохраняем конфигурацию роутера, изменяем конфигурацию, сохраняем конфигурацию повторно)

-7

Для начала - все.

После необходимо будет добавить оборудование других вендоров, настроить шифрование, TLS, поделить оборудование на группы, и т.д. и т.п.