GithubHelp home page GithubHelp logo

eve-ng_vesr's Introduction

Добавляем Eltex vESR в EVE-NG

Требования

Данная инструкция проверялась на EVE-NG 5.0.1-19-Community и с образом vesr-1.18.2-build3. Образ необходимо запросить напрямую у ELTEX. Скрипт и шаблоны неофициальные, делал для себя, но возможно кому-то будут полезны.

Подготавливаем шаблон

Из папок templates и templates_legacy копируем файлы в соответствующие папки на EVE-NG:

scp ./templates_legacy/vesr.yml root@ip_address_eve_ng:/opt/unetlab/html/templates_legacy/vesr.yml
scp ./templates/amd/vesr.yml root@ip_address_eve_ng:/opt/unetlab/html/templates/amd/vesr.yml
scp ./templates/intel/vesr.yml root@ip_address_eve_ng:/opt/unetlab/html/templates/intel/vesr.yml

Чтобы шаблон отображался в web-интерфейсе выполняем следующие на сервере с EVE-NG:

cp /opt/unetlab/html/includes/custom_templates.yml.distribution /opt/unetlab/html/includes/custom_templates.yml

И изменяем его содержимое на следующие:

custom_templates:
  - name: vesr
    listname: Eltex vESR
...

Экспорт конфигурации

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

cp ./scripts/config_vesr.py root@ip_address_eve_ng:/opt/unetlab/scripts/config_vesr.py

Подготовка образа

Создаем папку с нашим будущим шаблоном:

   # mkdir /opt/unetlab/addons/qemu/vesr-1.82.2

Подготавливаем образ в Proxmox (предпочтительный вариант)

Дело в том, что при созданиии образа в самой EVE сетевые интерфейсы получают MAC-адреса, и при фиксации изменений они сохраняются в образе. Именно поэтому если переиспользовать этот образ для создания двух нод происходит ситуация, при которой неправильно создаются сетевые интерфейсы. Я не смог выйти из этой ситуации использую только EVE. Если вы можете подсказать как это сделать, напишите мне, буду признателен!

У производителя есть вебинар о том как установаить vESR на Proxmox. Но в нашем случае есть важное отличие. Мы создаем виртуалку вообще с отсутствующими сетевыми интерфейсами. Когда доходим до вкладки Network ставим чекбокс напротив No network device. Делается это все для того, чтобы как раз избежать проблемы неправильного создания сетевых интерфейсов.

Установка vESR

  1. Дождитесь окончания таймера или нажмите "Enter".

grub

  1. Используя клавиши "↑, ↓", выберите пункт "vESR Installation".

  2. Используя клавиши "←, →", выберите пункт "OK" и нажмите клавишу "Enter".

install

  1. Нажмите клавишу "Space", после появится символ "*".

  2. Используя клавиши "←, →", выберите пункт "OK" и нажмите клавишу "Enter".

Ok

  1. Используя клавиши "←, →" выберите пункт "Yes"и нажмите клавишу "Enter".

Yes

  1. После установки вы увидите надпись "Installation complete. Please, reboot".

  2. Введите в командной строке "reboot" и нажмите клавишу "Enter".

Done

Вы успешно выполнили установку vESR.

После установки необходимо установить новый пароль.

Настройка Virtual Serial

Так как у нас в шаблоне тип подключения стоит telnet, мы не видим процесс загрузки устройства до полной загрузки. Исправим это.

Для того чтобы при подключении через Serial Port в консоли отображались логи, необходимо произвести дополнительные настройки.

  1. Перейдите в режим глобальной конфигурации.
vesr# config
  1. Перейдите в syslog console.
vesr(config)# syslog console
  1. Включите виртуальный Serial Port командой virtual serial.
vesr(config-syslog-console)# virtual-serial
  1. Примените конфигурацию.
vesr# commit
vesr# confirm
  1. Перезагрузите устройство.
vesr# reload system

После перезагрузки при подключении по Serial Port логи будут отображаться в консоли.

Создание образа qcow2

Сначала определяем место положение виртуального диска:

pvesm path local-lvm:vm-109-disk-0

Где local-lvm - пул хранения виртуальных дисков, а vm-109-disk-0 соответственно виртуальный диск.

Консоль должна вернуть подобное:

/dev/pve/vm-109-disk-0

Это значение искользуем для следующей команды:

qemu-img convert -O qcow2 -f raw /dev/pve/vm-112-disk-0 hda.qcow2

Вот и все. Мы получили образ hda.qcow2. Осталось скопировать его любым удобным для вас способом в папку /opt/unetlab/addons/qemu/vesr-1.82.2 на сервере EVE.

Правим права на добавленные файлы:

# /opt/unetlab/wrappers/unl_wrapper -a fixpermissions

Подготавливаем образ в EVE

Для того чтобы создать свой собственный образ Eltex vESR необходимо выполнить следующие действия.

  1. Создаем папку с нашим будущим шаблоном:
   # mkdir /opt/unetlab/addons/qemu/vesr-1.82.2
  1. Создаем образ диска в созданной директории:
   # /opt/qemu/bin/qemu-img create -f qcow2 hda.qcow2 1G
  1. Копируем iso образ Eltex vESR в ту же папку и называем его cdrom.iso:
   # scp ./vESR-1.82.2-build3.iso  root@ip_address_eve_ng:/opt/unetlab/addons/qemu/vesr-1.82.2/cdrom.iso

Установка vESR на EVE

В нашем шаблоне тип подключения выбран telnet, при таком типе подключения мы не сможем выполнить утановку с диска. Поэтому при первом добавлении ноды, указываем типа подключения как VNC:

Добавление ноды

Дальше выполняем установку как в пункте Установка vESR для Proxmox

Вы успешно выполнили установку vESR.

После установки необходимо установить новый пароль.

Далее рекомендую так же настроить Virtual Serial

Правим права на добавленные файлы:

# /opt/unetlab/wrappers/unl_wrapper -a fixpermissions

Фиксация изменений

При запуске qemu создается снимок диска в директории /opt/unetlab/tmp/, в который пишутся только изменения относительно родительского образа, соответственно поэтому все изменения после удаления хоста стираются. Но мы можем их закоммитить в изначальный образ, тем самым закрепив изменения в родительском образе. Таким образом можно насоздавать кучу разных презаготовленных образов довольно просто манипулируя файлами в директории /opt/unetlab/addons/qemu/. Это необходимо сделать, что каждый раз не выполнять установку, и не задавать пароль. Поэтому после установки и установки пароля, делаем фиксацию изменений

Обычно путь к файлу снимка выглядит примерно так:

/opt/unetlab/tmp/0/3491e0a7-25f8-46e1-b697-ccb4fc4088a2/1/hda.qcow2

Чтобы убедиться, снимок от какого родительского образа выполнен в этой директории, можно выполнить команду

# /opt/qemu/bin/qemu-img info hda.qcow2
image: hda.qcow2
file format: qcow2
virtual size: 614M (643825664 bytes)
disk size: 196K
cluster_size: 65536
backing file: /opt/unetlab/addons/qemu/vESR-1.82.2/hda.qcow2

Убедившись, что образ сделан из нужного родительского образа, мы можем выполнить коммит его, тем самым закрепив изменения в родитеском образе.

# /opt/qemu/bin/qemu-img commit hda.qcow2
Image committed.

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

Использование нескольких экземпляров в одной лабе (Если подготавливали образ в самой EVE)

При оспользовании нескольких экземпляров vESR в одной лабе, некорректно создаются интерфейсы. Единственный способ который сработал, это ручное переименование NIC.

NIC

Заходим в режим debug, смотрим что выводит команда sh nic, а дальше переименовываем как нам надо:

vesr(debug)# nic bind mac 50:00:00:02:00:00 gigabitethernet 1/0/1

И перезагружаем для применения изменений vesr# reload system . В самой лабе ноду тоже надо остановить/запустить.

eve-ng_vesr's People

Stargazers

 avatar Yuri avatar Fedor Suchkov avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.