هذا هو سجل GNS3 حيث يمكن للمستخدم مشاركة الأجهزة والرموز.
نحن نرحب بطلبات السحب للأجهزة الجديدة.
فيما يتعلق بالصور / الأقراص المشار إليها في ملفات الأجهزة الجديدة، فإننا نقبل الروابط التي تشير إلى مواقع الويب الخاصة بالموردين المعروفين أو مواقع الويب الأخرى ذات المصادر الموثوقة.
بالنسبة للمساهمة الجديدة، نقبل الروابط وفقًا لمعايير متعددة: نوع الجهاز ومن يرسله وخاصة إذا تم توفير البرامج النصية لإنشاء الصور (الصور) (يوصى باستخدام البرامج النصية للتعبئة لأجهزة Qemu). ثم سنقوم بالبناء من جانبنا والتحقق من الصورة (الصور) وتحميلها على حساب GNS3 Sourceforge.
بالنسبة لأجهزة Docker، يرجى تقديم ملف Dockerfile. سنقوم بعد ذلك ببناء الصورة ودفعها على Docker hub.
هناك طريقتان لإنشاء جهاز جديد:
appliances
new_appliance.py
بعد ذلك يمكنك أن ترسل لنا طلب سحب على Github
في schemas/appliance.json لديك JSON مع مخطط للتحكم في الملف ويمكن استخدامه كوثائق لكل حقل.
يتحقق GNS3 من إصدار المخطط، وإذا كان مخطط الجهاز غير مدعوم، فسيظهر الخطأ "يرجى تحديث GNS3 لتثبيت هذا الجهاز".
مخطط | دقيقة. نسخة جي إن إس 3 | الإضافات |
---|---|---|
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: Spice |
6 | 2.2.0 | qemu/custom_adapters qemu/console_type: Spice+agent الكل / نوع وحدة التحكم: لا شيء |
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
.
مثال
"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
إلى خصائص قالب Docker.spice+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 ويمكن تثبيت التبعيات باستخدام النقطة:
python3 -m pip install -r requirements.txt
python3 check.py
python3 check_urls.py
python3 new_appliance.py
سيؤدي هذا إلى وضع مسافة بادئة لـ JSON لجميع الأجهزة وفرز المفتاح بنفس ترتيب مخطط JSON.
python3 prettify_appliances.py