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:
Copie y pegue un JSON del directorio appliances
Ejecute 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:
Soporte para la propiedad uefi_boot_mode
en las propiedades de la plantilla Qemu.
Posibilidad de tener múltiples conjuntos de configuraciones para usar con diferentes versiones de imágenes. La configuración predeterminada se especifica si
existe un campo default
establecido en true
solo hay un conjunto presente.
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
"ajustes": [ {"default": true,"template_type": "qemu","template_properties": {"platform": "x86_64","adapter_type": "e1000","adapters": 1,"ram": 1024,"console_type ": "vnc"} }, {"name": "configuración de i386","template_type": "qemu","template_properties": {"plataforma": "i386","adaptadores": 8} }, {"name": "Configuración de ARM","template_type": "qemu","template_properties": {"plataforma": "arm","ram": 512} } ],"versiones": [ {"nombre": "1.0","imágenes": {"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"} }, ]
La configuración predeterminada es heredada por otras configuraciones establecidas, esto se puede bloquear configurando inherit_default_properties
en false
La plantilla predeterminada del controlador se utiliza si una propiedad de plantilla no está definida o no se hereda de la configuración predeterminada.
El campo md5sum
pasa a llamarse checksum
. El campo md5sum
todavía se acepta para facilitar la migración desde versiones de formato anteriores.
Nuevo campo checksum_type
opcional para desarrollo futuro. El único y predeterminado tipo de suma de comprobación sigue siendo MD5 por ahora.
Nuevos campos opcionales default_username
y default_password
en los niveles de dispositivo y versión.
Nuevo campo opcional installation_instructions
en los niveles de dispositivo y versión para brindar instrucciones de descarga/descompresión a algunos dispositivos.
Nuevo campo compression_target
opcional que se utilizará junto con el campo de compresión en desarrollos futuros.
El campo idlepc
en la sección de versiones se mueve a template_properties
para el tipo de plantilla dynamips
Los campos 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).
Se ha cambiado el nombre del campo arch
para qemu platform
para que coincida con las propiedades de la plantilla en el lado del controlador.
El campo 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.)
Los campos 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í).
La versión del dispositivo instalada se inyectará en el campo version
de la plantilla (solo versión del controlador >= v3.0)
Agregue los campos name
y default_name_format
a todas las propiedades de la plantilla.
Agregue console_resolution
, extra_hosts
y extra_volumes
a las propiedades de la plantilla Docker.
Permitir spice+agent
en console_type
para las propiedades de la plantilla Qemu.
Ejemplo completo
{"appliance_id": "709c2a9b-5dc3-4362-b147-fb848a0df963","name": "Mi dispositivo","category": "router","description": "Este es mi nuevo dispositivo","vendor_name": "Cisco","vendor_url": "http://www.cisco.com/","documentation_url": "https://www.cisco.com/c/en/us/support/routing/xxx","product_name": "Producto del dispositivo xxx","product_url": "https://www.cisco.com/c /en/us/products/xxx/index.html","registry_version":8,"status": "experimental","maintainer": "Equipo GNS3","maintainer_email": "[email protected]"," instrucciones_de_instalación": "Así es como se instala este dispositivo","usage": "Así es como se usa mi dispositivo","symbol": "router.svg","default_username": "cisco","default_password": "admin", "ajustes": [ {"name": "Configuración de plantilla predeterminada","default": true,"template_type": "qemu","template_properties": {"symbol": "multilayer_router.svg","first_port_name": "ethernet0","port_name_format": "ethernet{port1}","adapter_type": "e1000","adaptadores": 2,"ram": 4096, "cpus": 1,"hda_disk_interface": "scsi","plataforma": "x86_64","console_type": "vnc","boot_priority": "cd","opciones": ""} }, {"name": "Configuración personalizada para la versión 7.10.2","template_type": "qemu","inherit_default_properties": false,"template_properties": {"adaptadores": 4,"ram": 8192,"cpus": 1} } ],"imágenes": [ {"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/descargar"} ],"versiones": [ {"name": "7.10.2","settings": "Configuraciones personalizadas para la versión 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": "Así es como instalar esta versión","usage": "Así es como utilice esta versión","symbol": "ethernet_switch.svg","images": {"hda_disk_image": "empty100G.qcow2","cdrom_image": "archivo2.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