นี่คือรีจิสทรี GNS3 ที่ผู้ใช้สามารถแชร์อุปกรณ์และสัญลักษณ์ได้
เรายินดีรับคำขอดึงสำหรับเครื่องใช้ไฟฟ้าใหม่
สำหรับรูปภาพ / ดิสก์ที่อ้างอิงในไฟล์อุปกรณ์ใหม่ เรายอมรับลิงก์ที่ชี้ไปยังเว็บไซต์ของผู้จำหน่ายที่มีชื่อเสียงหรือเว็บไซต์แหล่งที่เชื่อถือได้อื่น ๆ
สำหรับการสนับสนุนใหม่ เรายอมรับลิงก์โดยขึ้นอยู่กับเกณฑ์หลายประการ ได้แก่ ประเภทของอุปกรณ์ ใครเป็นผู้ส่ง และโดยเฉพาะอย่างยิ่ง หากมีสคริปต์สำหรับสร้างรูปภาพให้ไว้ (แนะนำให้ใช้สคริปต์สำหรับบรรจุหีบห่อสำหรับอุปกรณ์ Qemu) จากนั้นเราจะสร้างจากฝั่งของเรา ตรวจสอบและอัปโหลดภาพในบัญชี GNS3 Sourceforge
สำหรับอุปกรณ์ Docker โปรดระบุ Dockerfile จากนั้นเราจะสร้างและพุชอิมเมจบน Docker hub
มีสองวิธีในการสร้างอุปกรณ์ใหม่:
appliances
new_appliance.py
หลังจากนั้นคุณสามารถส่งคำขอดึงข้อมูลมาที่ Github ได้
ใน schema/appliance.json คุณมี JSON พร้อมด้วยสคีมาสำหรับควบคุมไฟล์และสามารถใช้เป็นเอกสารประกอบสำหรับแต่ละฟิลด์ได้
GNS3 ตรวจสอบเวอร์ชันของสคีมา หากไม่รองรับสคีมาของอุปกรณ์ก็จะแสดงข้อผิดพลาด "โปรดอัปเดต GNS3 เพื่อติดตั้งอุปกรณ์นี้"
สคีมา | นาที เวอร์ชัน GNS3 | เพิ่มเติม |
---|---|---|
2 | 1.4.0 | |
3 | 1.5.0 | นักเทียบท่า |
4 | 2.0.0 | ความพร้อมใช้งาน คิวมู/ซีพียู qemu/hd?_disk_interface: sata รุ่น/รูปภาพ/bios_image |
5 | 2.1.0 | qemu/console_type: เครื่องเทศ |
6 | 2.2.0 | qemu/custom_adapters qemu/console_type: เครื่องเทศ+ตัวแทน ทั้งหมด/console_type: ไม่มี |
7 | 2.2.36 | คิวมู/tpm |
8 | 2.2.43 | ดูด้านล่าง |
สคีมาเวอร์ชัน 8 มีการเปลี่ยนแปลงมากมายในสคีมาของอุปกรณ์ ที่สำคัญที่สุดคือ:
uefi_boot_mode
ในคุณสมบัติเทมเพลต Qemudefault
ที่ตั้งค่าเป็น true
หมายเหตุ
ต้องเพิ่มฟิลด์ template_type
เพื่อบอก GNS3 ว่าจะสร้างเทมเพลตใด (qemu, iou, dynamips หรือ docker) ขณะนี้ยังไม่รองรับเทมเพลตประเภทต่างๆ ผสมกัน คุณสมบัติเฉพาะเทมเพลตทั้งหมดถูกกำหนดไว้ในฟิลด์ template_properties
ตัวอย่าง
"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
เป็น false
md5sum
ถูกเปลี่ยนชื่อเป็น checksum
ยังคงยอมรับช่อง md5sum
เพื่อให้ย้ายจากเวอร์ชันรูปแบบก่อนหน้าได้ง่ายขึ้นchecksum_type
ทางเลือกใหม่สำหรับการพัฒนาในอนาคต ประเภทเช็คซัมเริ่มต้นและประเภทเดียวเท่านั้นที่ยังคงเป็น MD5 ในตอนนี้default_username
และ default_password
ทางเลือกใหม่ในระดับอุปกรณ์และเวอร์ชันinstallation_instructions
ทางเลือกใหม่ที่อุปกรณ์และระดับเวอร์ชันเพื่อให้คำแนะนำการดาวน์โหลด/คลายแพ็กแก่อุปกรณ์บางตัวcompression_target
ใหม่ที่จะใช้พร้อมกับฟิลด์การบีบอัดในการพัฒนาในอนาคตidlepc
ในส่วนเวอร์ชันจะถูกย้ายไปยัง template_properties
สำหรับประเภทเทมเพลต dynamips
first_port_name
, port_name_format
, port_segment_size
และ linked_clone
จะถูกย้ายไปยัง template_properties
สำหรับประเภทเทมเพลต qemu (ฟิลด์เหล่านี้ใช้ได้เฉพาะกับเทมเพลต Qemu เท่านั้น)arch
สำหรับ qemu ได้รับการเปลี่ยนชื่อ platform
เพื่อให้ตรงกับคุณสมบัติเทมเพลตที่ฝั่งคอนโทรลเลอร์kvm
ถูกยกเลิกและไม่จำเป็นต้องใช้อีกต่อไป การติดตั้งอุปกรณ์ไม่ควรคำนึงถึงเซิร์ฟเวอร์ที่มีอยู่และความสามารถของเซิร์ฟเวอร์เหล่านั้น (เช่น ความสามารถในการรัน kvm เป็นต้น)category
usage
และ symbol
สามารถกำหนดได้ใน template_properties
ใดๆ ค่าเริ่มต้นอยู่ที่ระดับอุปกรณ์หรือระดับเวอร์ชัน (จะถูกแทรกใน template_properties
หากยังไม่ได้กำหนดไว้)version
ของเทมเพลต (เฉพาะเวอร์ชันคอนโทรลเลอร์ >= v3.0)name
และ default_name_format
ให้กับคุณสมบัติเทมเพลตทั้งหมดconsole_resolution
, extra_hosts
และ extra_volumes
ให้กับคุณสมบัติเทมเพลต Dockerspice+agent
ใน console_type
สำหรับคุณสมบัติเทมเพลต Qemuตัวอย่างเต็ม
{
"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 "
}
}
]
}
ค้นหาตัวอย่างในไดเร็กทอรี symbols
พื้นที่เก็บข้อมูลนี้ยังมีแหล่งที่มาของคอนเทนเนอร์ Docker ที่เผยแพร่โดยทีมงาน GNS3 และสามารถใช้เป็นอุปกรณ์ใน 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