Это реестр GNS3, в котором пользователь может делиться устройствами и символами.
Мы приветствуем запросы на получение новых приборов.
Что касается образов/дисков, на которые имеются ссылки в файлах новых устройств, мы принимаем ссылки, указывающие на веб-сайты известных поставщиков или веб-сайты других надежных источников.
Для нового вклада мы принимаем ссылки в зависимости от нескольких критериев: типа устройства, того, кто их отправляет, и особенно, если предоставляются сценарии для создания образов (сценарии упаковщика рекомендуются для устройств Qemu). Затем мы создадим на своей стороне, проверим и загрузим изображения в учетную запись GNS3 Sourceforge.
Для устройств Docker предоставьте файл Dockerfile. Затем мы создадим и отправим образ в Docker Hub.
Создать новое устройство можно двумя способами:
Скопируйте и вставьте JSON из каталога appliances
Запустите new_appliance.py
После этого вы можете отправить нам запрос на извлечение на Github.
В файле Schemas/appliance.json имеется JSON со схемой управления файлом, который можно использовать в качестве документации для каждого поля.
GNS3 проверяет версию схемы. Если схема устройства не поддерживается, отображается ошибка «Пожалуйста, обновите GNS3, чтобы установить это устройство».
Схема | мин. версия GNS3 | Дополнения |
---|---|---|
2 | 1.4.0 | |
3 | 1.5.0 | докер |
4 | 2.0.0 | доступность qemu/процессор qemu/hd?_disk_interface: сата версии/изображения/bios_image |
5 | 2.1.0 | qemu/console_type: специя |
6 | 2.2.0 | qemu/custom_adapters qemu/console_type: специя+агент все/тип_консоли: нет |
7 | 2.2.36 | qemu/tpm |
8 | 2.2.43 | См. ниже |
Версия схемы 8 внесла множество изменений в схему устройства. Наиболее важными являются:
Поддержка свойства uefi_boot_mode
в свойствах шаблона Qemu.
Возможность иметь несколько наборов настроек для использования с разными версиями изображений. Настройки по умолчанию указываются, если
существует поле default
, для которого установлено true
в наличии только один комплект.
Примечания
Необходимо добавить поле template_type
, чтобы указать GNS3, какой шаблон создать (qemu, iou, dynamips или docker), смешивание разных типов шаблонов в настоящий момент не поддерживается. Все свойства, специфичные для шаблона, определяются в поле template_properties
.
Пример
"настройки": [ {"default": true, "template_type": "qemu", "template_properties": {"platform": "x86_64", "adapter_type": "e1000", "adapters": 1, "ram": 1024, "console_type" ": "ВНК"} }, {"name": "i386 settings", "template_type": "qemu", "template_properties": {"platform": "i386", "adapters": 8} }, {"name": "Настройки ARM", "template_type": "qemu", "template_properties": {"platform": "arm","ram": 512} } ],"версии": [ {"name": "1.0","images": {"hda_disk_image": "disk1.qcow2"} }, {"name": "2.0","settings": "i386 settings","images": {"hda_disk_image": "disk2.qcow2"} }, {"name": "3.0", "settings": "Настройки ARM", "images": {"hda_disk_image": "disk3.qcow2"} }, ]
Настройки по умолчанию наследуются другими наборами настроек. Это можно заблокировать, установив для inherit_default_properties
false
Шаблон контроллера по умолчанию используется, если свойство шаблона не определено или не унаследовано от настроек по умолчанию.
Поле md5sum
переименовано в checksum
. Поле md5sum
по-прежнему принимается для упрощения миграции из предыдущих версий формата.
Новое необязательное поле checksum_type
для дальнейшего развития. Единственным типом контрольной суммы по умолчанию на данный момент остается MD5.
Новые необязательные поля default_username
и default_password
на уровне устройства и версии.
Новое необязательное поле installation_instructions
на уровне устройства и версии, которое содержит инструкции по загрузке/распаковке для некоторых устройств.
Новое необязательное поле compression_target
, которое будет использоваться вместе с полем сжатия в будущих разработках.
idlepc
в разделе версий перемещено в template_properties
для типа шаблона dynamips
Поля first_port_name
, port_name_format
, port_segment_size
и linked_clone
перемещены в template_properties
для типа шаблона qemu (эти поля действительны только для шаблонов Qemu).
Поле arch
для qemu было переименовано в platform
чтобы соответствовать свойствам шаблона на стороне контроллера.
Поле kvm
удалено и больше не требуется. При установке устройства не следует учитывать доступные серверы и их возможности (например, возможность запуска KVM и т. д.).
Поля category
, usage
и symbol
могут быть определены в любом template_properties
. Значения по умолчанию находятся на уровне устройства или уровне версии (они будут добавлены в template_properties
, если они там еще не определены).
Установленная версия устройства будет введена в поле version
шаблона (только версия контроллера >= v3.0).
Добавьте поля name
и default_name_format
во все свойства шаблона.
Добавьте console_resolution
, extra_hosts
и extra_volumes
в свойства шаблона Docker.
Разрешите spice+agent
в console_type
для свойств шаблона Qemu.
Полный пример
{"appliance_id": "709c2a9b-5dc3-4362-b147-fb848a0df963","name": "Мое устройство","category": "маршрутизатор","description": "Это мое новое устройство","vendor_name": "Cisco","vendor_url": "http://www.cisco.com/","documentation_url": "https://www.cisco.com/c/en/us/support/routing/xxx","product_name": "Продукт устройства xxx" ,"product_url": "https://www.cisco.com/c/en/us/products/xxx/index.html","registry_version":8,"status": "experimental","maintainer": "GNS3 Team","maintainer_email": "[email protected]","installation_instructions": "Вот как установить это устройство","usage": "Вот как использовать мой Appliance","symbol": "router.svg","default_username": "cisco","default_password": "admin","settings": [ {"name": "Настройки шаблона по умолчанию", "default": true, "template_type": "qemu", "template_properties": {"symbol": "multilayer_router.svg", "first_port_name": "ethernet0", "port_name_format": "ethernet{port1}", "adapter_type": "e1000", "adapters": 2, "ram": 4096, "ЦП": 1, "hda_disk_interface": "scsi", "платформа": "x86_64","console_type": "vnc","boot_priority": "cd","options": ""} }, {"name": "Пользовательские настройки для версии 7.10.2", "template_type": "qemu", "inherit_default_properties": false, "template_properties": {"адаптеры": 4, "оперативная память": 8192, "процессор": 1} } ],"изображения": [ {"имя_файла": "file.iso","версия": "7.10.2","контрольная сумма": "ef8712e655fcbc92dc1a1551ee2e4a80","checksum_type": "md5","filesize": 1287245824,"download_url": «https://software.cisco.com/download/home/286307342/type/286307754/release/7.10.2»}, {"имя_файла": "file2.iso","версия": "6.10.4","контрольная сумма": "68232f77da8f78cdc9aa6f3266a4d4c0","filesize": 3949459594,"download_url": «https://software.cisco.com/download/home/286307342/type/286307754/release/6.10.4»}, {"filename": "empty100G.qcow2", "version": "1.0", "md5sum": "1e6409a4523ada212dea2ebc50e50a65", "filesize": 198656, "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/","direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu% 20disk/empty100G.qcow2/download"} ],"версии": [ {"name": "7.10.2","settings": "Пользовательские настройки для версии 7.10.2","images": {"hda_disk_image": "empty100G.qcow2", "cdrom_image": "file.iso"} }, {"name": "6.10.4","default_username": "admin123","default_password": "admin123","installation_instructions": "Вот как установить эту версию","usage": "Вот как установить используйте эту версию","symbol": "ethernet_switch.svg","images": {"hda_disk_image": "empty100G.qcow2", "cdrom_image": "file2.iso"} } ] }
Примеры ищите в каталоге symbols
.
Этот репозиторий также содержит исходный код контейнера Docker, опубликованный командой GNS3 и который можно использовать в качестве устройства в GNS3.
Для всех инструментов требуется Python3, а зависимости можно установить с помощью pip:
python3 -m pip install -r requirements.txt
python3 check.py
python3 check_urls.py
python3 new_appliance.py
Это приведет к отступу в JSON всего устройства и сортировке ключа в том же порядке, что и в схеме JSON.
python3 prettify_appliances.py