EVE-NG, Cisco PyAts, Labs Configuration

Скрипт находится на github.
Для начальной конфигурации вновь созданной лабы в EVE-NG можно воспользоваться моим скриптом, написанном на pyhton. Что скрипт делает:

  • Подключается к серверу EVE-NG и находит конфигурационный файл указанной лабы по имени и далее скачивает данный файл локально
  • После чего разбирает данный файл: находит все роутеры, их параметры, настроенные интерфейсы.
  • Подключается снова к EVE-NG и определяет для каждого роутера текущий порт подключения по telnet, на основе uuid роутера.
  • Разбирает локальный конфигурационный файл (nod_network.yml), где определены для каждого роутера ip адреса необходимых интерфейсов, а также маршрутная информация.
  • На основе собранных данных формирует файл testbed_eveng.yaml в описанном у Cisco формате, а также ansible hosts.yaml файл.
  • Используя python библиотеки Cisco(pyats, genie) производится настройка роутеров в соответсвии с файлом testbed_eveng.yaml.
  • Далее, используя python библиотеки Cisco(pyats.aetest) запускается тест на проверку доступности настроенных интерфейсов, с помощью пингов.

Более подробное описание настройки

Работает только с Python3. Скачиваем скрипт с github:
git clone https://github.com/alexeykr65/evengv2.git
Для установки необходимых библиотек сформирован файл requirements.txt, запускаем его:
pip3 install -r requirements.txt
Далее редактируем файл nod_network.yml, определяем в нем необходимые интерфейсы и ip адреса, а также маршрут для доступа по ssh через интерфейс управления. Интерфейс управления помечается переменной mgmt (mgmt:True), он будет использоваться для дальнейшего подключения по ansible. Ниже показана схема примера:
Map_Network

В файле my_evev2.py правим переменные подключения и название лабы:

unl_file = "lab_testbed"  - название лабы, которую надо настроить
eve_ng_ip_host = "10.121.1.21"  - ip адрес сервера EVE-NG
eve_ng_ssh_username = "root"  - логин ssh сервера EVE-NG
eve_ng_ssh_password = "cisco"  - пароль ssh сервера EVE-NG

Запускаем файл my_evev2.py, сначала он настраивает лабу, ниже вывод команд: cmd_2

Далее запускается проверка, с использованием библиотеки Cisco Pyats.aetest, пример вывода теста представлен ниже: cmd_2

Если пинг не проходит, то это отобразится как failed, ниже пример вывода при не прохождении ping.
cmd_3

Print Friendly, PDF & Email
guest

0 Comments
Inline Feedbacks
View all comments