Это реестр GNS3, в котором пользователь может делиться устройствами и символами.
Мы приветствуем запросы на получение новых приборов.
Что касается образов/дисков, упоминаемых в файлах новых устройств, мы принимаем ссылки, указывающие на веб-сайты известных поставщиков или веб-сайты других надежных источников.
Для нового вклада мы принимаем ссылки в зависимости от нескольких критериев: типа устройства, того, кто их отправляет, и особенно, если предоставляются сценарии для создания образов (сценарии упаковщика рекомендуются для устройств Qemu). Затем мы создадим на своей стороне, проверим и загрузим изображения в учетную запись GNS3 Sourceforge.
Для устройств Docker предоставьте файл Dockerfile. Затем мы создадим и отправим образ в Docker Hub.
Создать новое устройство можно двумя способами:
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
.
Пример
"settings" : [
{
"default" : true ,
"template_type" : " qemu " ,
"template_properties" : {
"platform" : " x86_64 " ,
"adapter_type" : " e1000 " ,
"adapters" : 1 ,
"ram" : 1024 ,
"console_type" : " vnc "
}
},
{
"name" : " i386 settings " ,
"template_type" : " qemu " ,
"template_properties" : {
"platform" : " i386 " ,
"adapters" : 8
}
},
{
"name" : " ARM settings " ,
"template_type" : " qemu " ,
"template_properties" : {
"platform" : " arm " ,
"ram" : 512
}
}
],
"versions" : [
{
"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 settings " ,
"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" : " My appliance " ,
"category" : " router " ,
"description" : " This is my new appliance " ,
"vendor_name" : " Cisco " ,
"vendor_url" : " http://www.cisco.com/ " ,
"documentation_url" : " https://www.cisco.com/c/en/us/support/routing/xxx " ,
"product_name" : " Appliance product 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" : " This is how to install this appliance " ,
"usage" : " This is how to use my appliance " ,
"symbol" : " router.svg " ,
"default_username" : " cisco " ,
"default_password" : " admin " ,
"settings" : [
{
"name" : " Default template settings " ,
"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 ,
"cpus" : 1 ,
"hda_disk_interface" : " scsi " ,
"platform" : " x86_64 " ,
"console_type" : " vnc " ,
"boot_priority" : " cd " ,
"options" : " "
}
},
{
"name" : " Custom settings for version 7.10.2 " ,
"template_type" : " qemu " ,
"inherit_default_properties" : false ,
"template_properties" :
{
"adapters" : 4 ,
"ram" : 8192 ,
"cpus" : 1
}
}
],
"images" : [
{
"filename" : " file.iso " ,
"version" : " 7.10.2 " ,
"checksum" : " ef8712e655fcbc92dc1a1551ee2e4a80 " ,
"checksum_type" : " md5 " ,
"filesize" : 1287245824 ,
"download_url" : " https://software.cisco.com/download/home/286307342/type/286307754/release/7.10.2 "
},
{
"filename" : " file2.iso " ,
"version" : " 6.10.4 " ,
"checksum" : " 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 "
}
],
"versions" : [
{
"name" : " 7.10.2 " ,
"settings" : " Custom settings for version 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" : " This is how to install this version " ,
"usage" : " This is how to use this version " ,
"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