Este es el registro GNS3 donde el usuario puede compartir dispositivos y símbolos.
Aceptamos solicitudes de extracción de electrodomésticos nuevos.
Con respecto a las imágenes/discos a los que se hace referencia en archivos de dispositivos nuevos, aceptamos enlaces que apuntan a sitios web de proveedores conocidos u otros sitios web de fuentes confiables.
Para nuevas contribuciones, aceptamos enlaces dependiendo de múltiples criterios: el tipo de dispositivo, quién lo envía y especialmente si se proporcionan scripts para crear las imágenes (se recomiendan scripts de empaquetador para dispositivos Qemu). Luego construiremos de nuestra parte, verificaremos y cargaremos las imágenes en la cuenta GNS3 Sourceforge.
Para dispositivos Docker, proporcione un Dockerfile. Luego crearemos y enviaremos la imagen en Docker Hub.
Hay dos formas de crear un nuevo dispositivo:
appliances
new_appliance.py
Después de eso, puedes enviarnos una solicitud de extracción en Github.
En esquemas/appliance.json tiene un JSON con un esquema para controlar el archivo y puede usarse como documentación para cada campo.
GNS3 verifica la versión del esquema; si el esquema de un dispositivo no es compatible, muestra el error "Actualice GNS3 para instalar este dispositivo".
Esquema | mín. Versión GNS3 | Adiciones |
---|---|---|
2 | 1.4.0 | |
3 | 1.5.0 | estibador |
4 | 2.0.0 | disponibilidad qem/cpus qemu/hd?_disk_interface: sata versiones/imágenes/bios_image |
5 | 2.1.0 | qemu/console_type: especia |
6 | 2.2.0 | qemu/adaptadores_personalizados qemu/console_type: especia+agente todo/tipo_consola: ninguno |
7 | 2.2.36 | quemu/tpm |
8 | 2.2.43 | Vea abajo |
La versión 8 del esquema ha introducido muchos cambios en el esquema del dispositivo. Los más importantes son:
uefi_boot_mode
en las propiedades de la plantilla Qemu.default
establecido en true
Notas
Se debe agregar un campo template_type
para indicarle a GNS3 qué plantilla crear (qemu, iou, dynamips o docker), por el momento no se admite mezclar diferentes tipos de plantillas. Todas las propiedades específicas de la plantilla se definen en un campo template_properties
.
Ejemplo
"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
en false
md5sum
pasa a llamarse checksum
. El campo md5sum
todavía se acepta para facilitar la migración desde versiones de formato anteriores.checksum_type
opcional para desarrollo futuro. El único y predeterminado tipo de suma de comprobación sigue siendo MD5 por ahora.default_username
y default_password
en los niveles de dispositivo y versión.installation_instructions
en los niveles de dispositivo y versión para brindar instrucciones de descarga/descompresión a algunos dispositivos.compression_target
opcional que se utilizará junto con el campo de compresión en desarrollos futuros.idlepc
en la sección de versiones se mueve a template_properties
para el tipo de plantilla dynamips
first_port_name
, port_name_format
, port_segment_size
y linked_clone
se mueven a template_properties
para el tipo de plantilla qemu (estos campos solo son válidos para plantillas Qemu).arch
para qemu platform
para que coincida con las propiedades de la plantilla en el lado del controlador.kvm
se eliminó y ya no es necesario. La instalación de un dispositivo no debe tener en cuenta los servidores disponibles y sus capacidades (por ejemplo, capacidad de ejecutar kvm, etc.)category
, usage
y symbol
se pueden definir en cualquier template_properties
. Los valores predeterminados están en el nivel del dispositivo o en el nivel de versión (se inyectarán en template_properties
si aún no están definidos allí).version
de la plantilla (solo versión del controlador >= v3.0)name
y default_name_format
a todas las propiedades de la plantilla.console_resolution
, extra_hosts
y extra_volumes
a las propiedades de la plantilla Docker.spice+agent
en console_type
para las propiedades de la plantilla Qemu.Ejemplo completo
{
"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 "
}
}
]
}
Busque ejemplos en el directorio symbols
.
Este repositorio también contiene el código fuente del contenedor Docker publicado por el equipo de GNS3 y que se puede utilizar como dispositivo en GNS3.
Todas las herramientas requieren python3 y las dependencias se pueden instalar usando pip:
python3 -m pip install -r requirements.txt
python3 check.py
python3 check_urls.py
python3 new_appliance.py
Esto sangrará el JSON de todos los dispositivos y ordenará la clave en el mismo orden que el esquema JSON.
python3 prettify_appliances.py