这是 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、“状态”:“实验”、“维护者”: "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”,“文件大小”:1287245824,“download_url”: “https://software.cisco.com/download/home/286307342/type/286307754/release/7.10.2”}, {“文件名”:“file2.iso”,“版本”:“6.10.4”,“校验和”:“68232f77da8f78cdc9aa6f3266a4d4c0”,“文件大小”:3949459594,“download_url”: “https://software.cisco.com/download/home/286307342/type/286307754/release/6.10.4”}, {“文件名”:“empty100G.qcow2”,“版本”:“1.0”,“md5sum”:“1e6409a4523ada212dea2ebc50e50a65”,“文件大小”: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% 20盘/空100G.qcow2/下载"} ],"版本": [ {"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