這是 GNS3 註冊表,使用者可以在其中共用裝置和符號。
我們歡迎新設備的拉取請求。
關於新設備檔案中引用的圖像/磁碟,我們接受指向知名供應商網站或其他可信任來源網站的連結。
對於新貢獻,我們根據多個標準接受連結:設備類型、提交者,特別是是否提供了建置映像的腳本(建議為 Qemu 設備提供打包腳本)。然後我們將在我們這邊建置、驗證並上傳 GNS3 Sourceforge 帳戶上的映像。
對於 Docker 設備,請提供 Dockerfile。然後我們將建立映像並將其推送到 Docker hub 上。
建立新設備有兩種方法:
從appliances
目錄複製並貼上 JSON
執行new_appliance.py
之後您可以在 Github 上向我們發送拉取請求
在 schemas/appliance.json 中,您有一個 JSON,其中包含用於控製文件的架構,並且可以用作每個欄位的文件。
GNS3 檢查架構版本,如果不支援裝置的架構,則會顯示錯誤「請更新 GNS3 以安裝此裝置」。
模式 | 分鐘。 GNS3版本 | 補充內容 |
---|---|---|
2 | 1.4.0 | |
3 | 1.5.0 | 泊塢窗 |
4 | 2.0.0 | 可用性 qemu/CPU qemu/hd?_disk_interface:SATA 版本/影像/bios_image |
5 | 2.1.0 | qemu/console_type:香料 |
6 | 2.2.0 | qemu/自訂適配器 qemu/console_type:香料+代理 全部/console_type:無 |
7 | 2.2.36 | qemu/tpm |
8 | 2.2.43 | 見下文 |
架構版本 8 在裝置架構中引入了許多變更。最重要的是:
支援 Qemu 模板屬性中的uefi_boot_mode
屬性。
可以將多組設定用於不同的圖像版本。如果指定預設設定
存在設定為true
default
字段
目前只有一套。
筆記
必須加入template_type
欄位來告訴 GNS3 要建立什麼模板(qemu、iou、dynamips 或 docker),目前不支援混合不同的模板類型。所有模板特定屬性均在template_properties
欄位中定義。
例子
"設定": [ {“預設”:true,“template_type”:“qemu”,“template_properties”:{“平台”:“x86_64”,“adapter_type”:“e1000”,“適配器”:1,“ram”:1024,“console_type “:“vnc”} }, {“名稱”:“i386設定”,“template_type”:“qemu”,“template_properties”:{“平台”:“i386”,“適配器”:8} }, {“name”:“ARM設定”,“template_type”:“qemu”,“template_properties”:{“platform”:“arm”,“ram”:512} } ],"版本": [ {“名稱”:“1.0”,“圖像”:{“hda_disk_image”:“disk1.qcow2”} }, {“名稱”:“2.0”,“設定”:“i386設定”,“圖像”:{“hda_disk_image”:“disk2.qcow2”} }, {“名稱”:“3.0”,“設定”:“ARM設定”,“映像”:{“hda_disk_image”:“disk3.qcow2”} }, ]
預設設定由其他設定集繼承,可以透過將inherit_default_properties
設為false
來阻止此設定
如果未定義模板屬性或未從預設設定繼承模板屬性,則使用控制器模板預設值。
md5sum
字段被重新命名為checksum
。仍然接受md5sum
字段,以便更輕鬆地從先前的格式版本遷移。
用於未來開發的新可選checksum_type
欄位。目前預設且唯一的校驗和類型仍然是 MD5。
裝置和版本層級的新選用default_username
和default_password
欄位。
裝置和版本層級的新可選installation_instructions
欄位可為某些裝置提供下載/解壓縮說明。
新的可選的compression_target
欄位將在未來的開發中與壓縮欄位一起使用。
版本部分中的idlepc
欄位被移到dynamips
模板類型的template_properties
中
first_port_name
、 port_name_format
、 port_segment_size
和linked_clone
欄位被移到 qemu 範本類型的template_properties
中(這些欄位僅對 Qemu 範本有效)。
qemu 的arch
欄位已重新命名為platform
以符合控制器端的範本屬性。
kvm
欄位已被刪除,不再需要。安裝設備不應考慮可用的伺服器及其功能(例如能夠運行 kvm 等)
category
、 usage
和symbol
欄位可以在任何template_properties
中定義。預設值位於裝置層級或版本層級(如果尚未定義,它們將被注入到template_properties
中)。
安裝的設備版本將被注入模板的version
本欄位中(僅控制器版本> = v3.0)
將name
和default_name_format
欄位新增至所有範本屬性。
將console_resolution
、 extra_hosts
和extra_volumes
加入 Docker 模板屬性中。
在 Qemu 模板屬性的console_type
中允許spice+agent
。
完整範例
{“appliance_id”:“709c2a9b-5dc3-4362-b147-fb848a0df963”,“name”:“我的設備”,“category”:“路由器”,“description”:“這是我的新設備”,“vendor_name 」: "思科","vendor_url": "http://www.cisco.com/","documentation_url": "https://www.cisco.com/c/en/us/support/routing/xxx" ," Product_name": "裝置產品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": "這是如何安裝此裝置","usage": "這是如何使用我的裝置","symbol": "router.svg","default_username": "cisco","default_password": "admin","settings": [ {“name”:“預設範本設定”,“default”:true,“template_type”:“qemu”,“template_properties”: {“symbol”:“multilayer_router.svg”,“first_port_name”:“ethernet0”,“port_name_format”:“ethernet {port1}”,“adapter_type”:“e1000”,“適配器”:2,“ram”:4096, “cpus”:1,“hda_disk_interface”:“scsi”,“平台”:“x86_64”,“console_type”:“vnc”,“boot_priority”:“cd”,“選項”:“”} }, {"name": "版本 7.10.2 的自訂設定","template_type": "qemu","inherit_default_properties": false,"template_properties": {「適配器」:4,「記憶體」:8192,「CPU」:1} } ],「圖像」:[ {“檔案名稱”:“file.iso”,“版本”:“7.10.2”,“校驗和”:“ef8712e655fcbc92dc1a1551ee2e4a80”,“checksum_type”:“md5”,“檔案大小”:1287245824url” :「https: //software.cisco.com/download/home/286307342/type/286307754/release/7.10.2"}, {“檔案名稱”:“file2.iso”,“版本”:“6.10.4”,“校驗和”:“68232f77da8f78cdc9aa6f3266a4d4c0”,“檔案大小”:3949459594,“httpsdownload_urlware. cisco.com/下載/home/286307342/type/286307754/release/6.10.4"}, {“檔案名稱”:“empty100G.qcow2”,“版本”:“1.0”,“md5sum”:“1e6409a4523ada212dea2ebc50e50a65”,“檔案大小”:198656,“download_url”:“https://prosources. gns- 3/files/Empty%20Qemu%20disk/","direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty100G.qcow2/download" ],"版本": [ {"name": "7.10.2","settings": "版本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": "這是如何安裝此版本","usage": "這是如何使用此版本","symbol": "ethernet_switch.svg","images": {"hda_disk_image": "empty100G.qcow2","cdrom_image": "file2.iso"} } ] }
在symbols
目錄中尋找範例。
該儲存庫還包含 GNS3 團隊發布的 Docker 容器的原始程式碼,可用作 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