นี่คือรีจิสทรี GNS3 ที่ผู้ใช้สามารถแชร์อุปกรณ์และสัญลักษณ์ได้
เรายินดีรับคำขอดึงสำหรับเครื่องใช้ไฟฟ้าใหม่
สำหรับรูปภาพ / ดิสก์ที่อ้างอิงในไฟล์อุปกรณ์ใหม่ เรายอมรับลิงก์ที่ชี้ไปยังเว็บไซต์ของผู้จำหน่ายที่มีชื่อเสียงหรือเว็บไซต์แหล่งที่เชื่อถือได้อื่น ๆ
สำหรับการสนับสนุนใหม่ เรายอมรับลิงก์โดยขึ้นอยู่กับเกณฑ์หลายประการ ได้แก่ ประเภทของอุปกรณ์ ใครเป็นผู้ส่ง และโดยเฉพาะอย่างยิ่ง หากมีสคริปต์สำหรับสร้างรูปภาพให้ไว้ (แนะนำให้ใช้สคริปต์สำหรับบรรจุหีบห่อสำหรับอุปกรณ์ Qemu) จากนั้นเราจะสร้างจากฝั่งของเรา ตรวจสอบและอัปโหลดภาพในบัญชี GNS3 Sourceforge
สำหรับอุปกรณ์ Docker โปรดระบุ Dockerfile จากนั้นเราจะสร้างและพุชอิมเมจบน Docker hub
มีสองวิธีในการสร้างอุปกรณ์ใหม่:
คัดลอกและวาง JSON จากไดเรกทอรี 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
ในคุณสมบัติเทมเพลต Qemu
ความเป็นไปได้ที่จะมีการตั้งค่าหลายชุดเพื่อใช้กับรูปภาพเวอร์ชันต่างๆ การตั้งค่าเริ่มต้นจะถูกระบุหาก
มีฟิลด์ default
ที่ตั้งค่าเป็น true
มีอยู่ชุดเดียวเท่านั้น
หมายเหตุ
ต้องเพิ่มฟิลด์ template_type
เพื่อบอก GNS3 ว่าจะสร้างเทมเพลตใด (qemu, iou, dynamips หรือ docker) ขณะนี้ยังไม่รองรับเทมเพลตประเภทต่างๆ ผสมกัน คุณสมบัติเฉพาะเทมเพลตทั้งหมดถูกกำหนดไว้ในฟิลด์ template_properties
ตัวอย่าง
"การตั้งค่า": [ {"default": true,"template_type": "qemu","template_properties": {"platform": "x86_64","adapter_type": "e1000", "อะแดปเตอร์": 1,"ram": 1024,"console_type ": "vnc"} - {"ชื่อ": "การตั้งค่า i386", "template_type": "qemu", "template_properties": {"แพลตฟอร์ม": "i386", "อะแดปเตอร์": 8} - {"ชื่อ": "การตั้งค่า ARM", "template_type": "qemu", "template_properties": {"แพลตฟอร์ม": "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
ในส่วนเวอร์ชันจะถูกย้ายไปยัง 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
ให้กับคุณสมบัติเทมเพลต Docker
อนุญาตให้ใช้ spice+agent
ใน console_type
สำหรับคุณสมบัติเทมเพลต Qemu
ตัวอย่างเต็ม
{"appliance_id": "709c2a9b-5dc3-4362-b147-fb848a0df963","name": "อุปกรณ์ของฉัน", "หมวดหมู่": "เราเตอร์", "คำอธิบาย": "นี่คืออุปกรณ์ใหม่ของฉัน", "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": "ทดลอง", "ผู้ดูแล": "ทีม GNS3", "maintainer_email": "[email protected]", "installation_instructions": "นี่คือวิธีติดตั้งอุปกรณ์นี้", "การใช้งาน": "นี่คือวิธีใช้อุปกรณ์ของฉัน", "สัญลักษณ์": "router.svg", "default_username": "cisco", "default_password": "ผู้ดูแลระบบ", "การตั้งค่า": [ {"name": "การตั้งค่าเทมเพลตเริ่มต้น", "ค่าเริ่มต้น": true, "template_type": "qemu", "template_properties": {"สัญลักษณ์": "multilayer_router.svg", "first_port_name": "ethernet0", "port_name_format": "อีเธอร์เน็ต{พอร์ต1}", "adapter_type": "e1000", "อะแดปเตอร์": 2, "ram": 4096, "ซีพียู": 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,"ซีพียู": 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% 20disk/empty100G.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": "นี่คือวิธีการติดตั้งเวอร์ชันนี้", "การใช้งาน": "นี่คือวิธีการติดตั้ง ใช้เวอร์ชันนี้"สัญลักษณ์": "ethernet_switch.svg" "รูปภาพ": {"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