Скрипт находится на 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. Ниже показана схема примера:
В файле 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, сначала он настраивает лабу, ниже вывод команд:
Далее запускается проверка, с использованием библиотеки Cisco Pyats.aetest, пример вывода теста представлен ниже:
Если пинг не проходит, то это отобразится как failed, ниже пример вывода при не прохождении ping.