Dies ist die GNS3-Registrierung, in der Benutzer Geräte und Symbole teilen können.
Wir freuen uns über Pull-Anfragen für neue Geräte.
In Bezug auf Bilder/Festplatten, auf die in neuen Appliance-Dateien verwiesen wird, akzeptieren wir Links, die auf Websites bekannter Anbieter oder andere Websites vertrauenswürdiger Quellen verweisen.
Für neue Beiträge akzeptieren wir Links abhängig von mehreren Kriterien: der Art der Appliance, wer sie einreicht und insbesondere, ob Skripte zum Erstellen der Bilder bereitgestellt werden (Packer-Skripte werden für Qemu-Appliances empfohlen). Dann bauen wir auf unserer Seite auf, verifizieren und laden die Bilder auf das GNS3 Sourceforge-Konto hoch.
Für Docker-Appliances stellen Sie bitte eine Docker-Datei bereit. Anschließend erstellen wir das Image und übertragen es auf den Docker-Hub.
Es gibt zwei Möglichkeiten, eine neue Appliance zu erstellen:
appliances
-Verzeichnis einnew_appliance.py
ausAnschließend können Sie uns einen Pull-Request auf Github senden
In schemas/appliance.json haben Sie einen JSON mit einem Schema zur Steuerung der Datei und können als Dokumentation für jedes Feld verwendet werden.
GNS3 überprüft die Schemaversion. Wenn das Schema einer Appliance nicht unterstützt wird, wird die Fehlermeldung „Bitte aktualisieren Sie GNS3, um diese Appliance zu installieren“ angezeigt.
Schema | min. GNS3-Version | Ergänzungen |
---|---|---|
2 | 1.4.0 | |
3 | 1.5.0 | Docker |
4 | 2.0.0 | Verfügbarkeit qemu/cpus qemu/hd?_disk_interface: sata versionen/images/bios_image |
5 | 2.1.0 | qemu/console_type: Spice |
6 | 2.2.0 | qemu/custom_adapters qemu/console_type: Spice+Agent all/console_type: keine |
7 | 2.2.36 | qemu/tpm |
8 | 2.2.43 | Siehe unten |
Schemaversion 8 hat viele Änderungen im Appliance-Schema eingeführt. Die wichtigsten sind:
uefi_boot_mode
in den Qemu-Vorlageneigenschaften.default
, das auf true
gesetzt istNotizen
Es muss ein Feld template_type
hinzugefügt werden, um GNS3 mitzuteilen, welche Vorlage erstellt werden soll (qemu, iou, dynamips oder docker). Das Mischen verschiedener Vorlagentypen wird derzeit nicht unterstützt. Alle vorlagenspezifischen Eigenschaften werden in einem template_properties
-Feld definiert.
Beispiel
"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
auf false
gesetzt wirdmd5sum
wird in checksum
umbenannt. Das Feld md5sum
wird zur einfacheren Migration von früheren Formatversionen weiterhin akzeptiert.checksum_type
für zukünftige Entwicklungen. Der standardmäßige und einzige Prüfsummentyp bleibt vorerst MD5.default_username
und default_password
auf Appliance- und Versionsebene.installation_instructions
auf Appliance- und Versionsebene, um für einige Appliances Anweisungen zum Herunterladen/Entpacken zu geben.compression_target
, das in zukünftigen Entwicklungen zusammen mit dem Feld „compression“ verwendet werden soll.idlepc
im Abschnitt „Versionen“ wird in template_properties
für den Vorlagentyp dynamips
verschobenfirst_port_name
, port_name_format
, port_segment_size
und linked_clone
werden in die template_properties
für den Qemu-Vorlagentyp verschoben (diese Felder sind nur für Qemu-Vorlagen gültig).arch
Feld für Qemu wurde in platform
umbenannt, um den Vorlageneigenschaften auf der Controller-Seite zu entsprechen.kvm
Feld wurde gelöscht und ist nicht mehr erforderlich. Bei der Installation einer Appliance sollten die verfügbaren Server und ihre Fähigkeiten (z. B. die Fähigkeit zur Ausführung von KVM usw.) nicht berücksichtigt werden.category
, usage
und symbol
können in beliebigen template_properties
definiert werden. Die Standardwerte liegen auf Appliance- oder Versionsebene vor (sie werden in template_properties
eingefügt, sofern sie dort nicht bereits definiert sind).version
der Vorlage eingefügt (nur Controller-Version >= v3.0).name
und default_name_format
hinzu.console_resolution
, extra_hosts
und extra_volumes
zu den Docker-Vorlageneigenschaften hinzu.spice+agent
in console_type
für Qemu-Vorlageneigenschaften.Vollständiges Beispiel
{
"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 "
}
}
]
}
Suchen Sie nach Beispielen im symbols
.
Dieses Repository enthält auch die Quelle des vom GNS3-Team veröffentlichten Docker-Containers, der als Appliance in GNS3 verwendet werden kann.
Alle Tools erfordern Python3 und Abhängigkeiten können mit pip installiert werden:
python3 -m pip install -r requirements.txt
python3 check.py
python3 check_urls.py
python3 new_appliance.py
Dadurch wird der JSON aller Appliances eingerückt und der Schlüssel in derselben Reihenfolge wie das JSON-Schema sortiert.
python3 prettify_appliances.py