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 werden wir auf unserer Seite aufbauen, die Bilder überprüfen und auf das GNS3 Sourceforge-Konto hochladen.
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:
Kopieren Sie einen JSON-Code und fügen Sie ihn aus dem appliances
-Verzeichnis ein
Führen Sie new_appliance.py
aus
Anschließ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:
Unterstützung für die Eigenschaft uefi_boot_mode
in den Qemu-Vorlageneigenschaften.
Möglichkeit, mehrere Einstellungssätze für verschiedene Bildversionen zu verwenden. Standardeinstellungen werden angegeben, wenn
Es existiert ein default
, das auf true
gesetzt ist
Es ist nur ein Satz vorhanden.
Notizen
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
"Einstellungen": [ {"default": true,"template_type": "qemu", "template_properties": {"platform": "x86_64", "adapter_type": "e1000", "adapters": 1, "ram": 1024, "console_type ": "vnc"} }, {"name": "i386-Einstellungen", "template_type": "qemu", "template_properties": {"platform": "i386", "adapters": 8} }, {"name": "ARM-Einstellungen", "template_type": "qemu", "template_properties": {"platform": "arm", "ram": 512} } ],"Versionen": [ {"name": "1.0", "images": {"hda_disk_image": "disk1.qcow2"} }, {"name": "2.0", "settings": "i386-Einstellungen", "images": {"hda_disk_image": "disk2.qcow2"} }, {"name": "3.0", "settings": "ARM-Einstellungen", "images": {"hda_disk_image": "disk3.qcow2"} }, ]
Die Standardeinstellungen werden von anderen Einstellungssätzen geerbt. Dies kann blockiert werden, indem inherit_default_properties
auf false
gesetzt wird
Der Controller-Vorlagenstandard wird verwendet, wenn eine Vorlageneigenschaft nicht definiert oder von den Standardeinstellungen geerbt ist.
Das Feld md5sum
wird in checksum
umbenannt. Das Feld md5sum
wird zur einfacheren Migration von früheren Formatversionen weiterhin akzeptiert.
Neues optionales Feld checksum_type
für zukünftige Entwicklungen. Der standardmäßige und einzige Prüfsummentyp bleibt vorerst MD5.
Neue optionale Felder default_username
und default_password
auf Appliance- und Versionsebene.
Neues optionales Feld installation_instructions
auf Appliance- und Versionsebene, um für einige Appliances Anweisungen zum Herunterladen/Entpacken zu geben.
Neues optionales Feld compression_target
, das in zukünftigen Entwicklungen zusammen mit dem Feld „compression“ verwendet werden soll.
Das Feld idlepc
im Abschnitt „Versionen“ wird in template_properties
für den Vorlagentyp dynamips
verschoben
Die Felder first_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).
Das arch
Feld für Qemu wurde in platform
umbenannt, um den Vorlageneigenschaften auf der Controller-Seite zu entsprechen.
Das 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.
Die Felder 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).
Die installierte Appliance-Version wird in das version
der Vorlage eingefügt (nur Controller-Version >= v3.0).
Fügen Sie allen Vorlageneigenschaften die Felder name
und default_name_format
hinzu.
Fügen Sie console_resolution
, extra_hosts
und extra_volumes
zu den Docker-Vorlageneigenschaften hinzu.
Erlauben Sie spice+agent
in console_type
für Qemu-Vorlageneigenschaften.
Vollständiges Beispiel
{"appliance_id": "709c2a9b-5dc3-4362-b147-fb848a0df963", "name": "Mein Gerät", "category": "router", "description": "Dies ist mein neues Gerät", "vendor_name": „Cisco“, „vendor_url“: „http://www.cisco.com/“, „documentation_url“: „https://www.cisco.com/c/en/us/support/routing/xxx“, „product_name“: „Appliance-Produkt 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“: „So installieren Sie diese Appliance“, „usage“: „So verwenden Sie meine Appliance“, „symbol“: „router.svg“, „default_username“: „cisco“, „default_password“: „admin“, „settings“: [ {"name": "Standardvorlageneinstellungen", "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": "Benutzerdefinierte Einstellungen für Version 7.10.2", "template_type": "qemu", "inherit_default_properties": false, "template_properties": {"adapters": 4,"ram": 8192,"cpus": 1} } ],"Bilder": [ {"Dateiname": "file.iso", "Version": "7.10.2", "Prüfsumme": "ef8712e655fcbc92dc1a1551ee2e4a80", "Prüfsummentyp": "md5", "Dateigröße": 1287245824, "download_url": „https://software.cisco.com/download/home/286307342/type/286307754/release/7.10.2“}, {"Dateiname": "file2.iso", "Version": "6.10.4", "Prüfsumme": "68232f77da8f78cdc9aa6f3266a4d4c0", "Dateigröße": 3949459594, "download_url": „https://software.cisco.com/download/home/286307342/type/286307754/release/6.10.4“}, {"Dateiname": "empty100G.qcow2", "Version": "1.0", "md5sum": "1e6409a4523ada212dea2ebc50e50a65", "Dateigröße": 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"} ],"Versionen": [ {"name": "7.10.2", "settings": "Benutzerdefinierte Einstellungen für 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": "So installieren Sie diese Version", "usage": "So installieren Sie diese Version". diese Version verwenden","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 Docker-Containers, der vom GNS3-Team veröffentlicht wurde und 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