16.11.2016

PHP IPAM. Импорт из Excel

IP Address Management (сокращенно IPAM) – средство планирования, отслеживания и управления IP адресами в сети (via).

 В больших сетях отследить все используемые адреса и приготовиться к их изменению или внедрению новых – большая, трудновыполнимая задача. База данных IP адресов у многих ведется в различных табличка (Google Docs, Excel), у остальных не ведется совсем.
При изменениях в сети оперировать информацией из этих мест становится все сложнее и документы быстро теряют свою актуальность.

Именно поэтому было решено развернуть сервер управления IP адресами в нашей сети. После мук выбора я остановился на PHP IPAM - он показался мне наиболее дружелюбным и функциональным, к тому же имеет API для взаимодействия с внешними системами.
Посмотреть на демо это системы можно тут

Как происходит установка этой замечательной системы я рассказывать не буду - всё и так хорошо описано в Интернете. Если будут вопросы - спрашивайте в комментариях

А так как сеть у меня уже большая и информация о ней мало где отражена, то актуальнейшая информация находится в таблицах маршрутизации роутеров. Эту информацию нужно внести в базу данных сервера IPAM. А как это сделать, я сейчас расскажу.

С помощью системы мониторинга The Dude выгружаем таблицу маршрутизации в csv
Экспорт из Dude в csv
Открываем Excel и загружаем данные. Данные - из текста
Импорт csv в Excel
Выбираем наш файл. В открывшемся окне указываем формат - с разделителям и жмем далее
С разделителями

The Dude экспортирует в файл с раделителями - запятыми, поэтому выбираем "запятые" и жмем далее
Разделители - запятые
На следующем шаге жмем кнопку "Готово"
Готово!

Выбираем ячейку, начиная с которой нужно вставить данные - обычно это А1. И наслаждаемся результатом. Теперь можно подкорректировать табличку.
Excel

Теперь нам нужно сформировать csv, который принял бы наш IPAM сервер. А у него следующий формат файла для импорта:
Формат csv для импорта в IPAM
section name*(varchar(128)),    subnet*(varchar(255)),   mask(varchar(3)),  description(text),   vlan name(varchar(255)),   domain name(varchar(64)),   vrf name(varchar(32)). Обязательны только первые два параметра - имя секции и подсеть.


Оставим только нужную нам информацию
Убрали ненужное
Как видим, остались только данные о подсети и связанного с ней филиала. Но имя интерфейса нам ни к чему, поэтому из строки вида <sstp-pub-740102> надо сделать RB740102. В этом нам поможет Excel
Найти и заменить
Теперь нам нужно избавиться от закрывающего спецсимвола ">"
>
Финиш близко



Приведем нашу табличку к такому виду
Готовый Excel
И сохраним как csv. Excel ругнется на то, что мы потеряем данные, но мы готовы на такой риск =)
В итоге должны получить файл следующего вида
CSV
Его уже можно импортировать в PHP IPAM. Заходим в Administration - Import/Export
Import


В PHP IPAM на данный момент в версии 1.2 rev1 доступен импорт только subnets. Поэтому выбираем subnets и жмем Import
Import subnets
Жмем Browse
Browse
Выбираем наш csv и жмем открыть.

На этом этапе мы должны получить ошибку: Error: Upload directory is not writable, or does not exist.
Error: Upload directory is not writable, or does not exist.
Это значит, что у веб-сервера нет прав на запись в папку upload. Добавим эти права. Выполним в консоли  sudo chmod -R g+w o+w /var/www/html/phpipam/app/admin/import-export/upload/ Тут должен быть путь до вашего сервера IPAM! 

Import
Повторяем пункты импорта. Система выдаст предупреждение о том, что не все пункты сопоставлены. Точно - в первом столбце пусто. Выбираем там section name и жмем Preview. Если все хорошо, то система покажет список импортируемых подсетей и их имена
Uploaded data
Жмем Import и проверяем указанную в поле section csv-файла секцию. Наши записи успешно импортированы!
Готово!

 


2 комментария:

  1. Можно ли таким способом импортировать и Master Sabnet??? Если не таким способом, то как?

    ОтветитьУдалить
    Ответы
    1. К сожалению не проверял. А сейчас уже и посмотреть-проверить негда

      Удалить

Примечание. Отправлять комментарии могут только участники этого блога.