هذا هو سجل GNS3 حيث يمكن للمستخدم مشاركة الأجهزة والرموز.
نحن نرحب بطلبات السحب للأجهزة الجديدة.
فيما يتعلق بالصور / الأقراص المشار إليها في ملفات الأجهزة الجديدة، فإننا نقبل الروابط التي تشير إلى مواقع الويب الخاصة بالموردين المعروفين أو مواقع الويب الأخرى ذات المصادر الموثوقة.
بالنسبة للمساهمة الجديدة، نقبل الروابط وفقًا لمعايير متعددة: نوع الجهاز ومن يرسله وخاصة إذا تم توفير البرامج النصية لإنشاء الصور (الصور) (يوصى باستخدام البرامج النصية للتعبئة لأجهزة Qemu). ثم سنقوم بالبناء من جانبنا والتحقق من الصورة (الصور) وتحميلها على حساب GNS3 Sourceforge.
بالنسبة لأجهزة Docker، يرجى تقديم ملف Dockerfile. سنقوم بعد ذلك ببناء الصورة ودفعها على Docker hub.
هناك طريقتان لإنشاء جهاز جديد:
انسخ والصق JSON من دليل 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
.
مثال
"إعدادات": [ {"افتراضي": صحيح،"template_type": "qemu"، "template_properties": {"platform": "x86_64"، "adapter_type": "e1000"، "adapters": 1، "ram": 1024، "console_type ": "فنك"} }, {"name": "إعدادات i386"، "template_type": "qemu"، "template_properties": {"النظام الأساسي": "i386"، "المحولات": 8} }, {"name": "إعدادات ARM"، "template_type": "qemu"، "template_properties": {"platform": "arm"، "ram": 512} } ]"الإصدارات": [ {"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"، "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": "جهازي"، "الفئة": "جهاز التوجيه"، "وصف": "هذا هو جهازي الجديد"، "اسم_المورد": "Cisco"، "vendor_url": "http://www.cisco.com/"، "documentation_url": "https://www.cisco.com/c/en/us/support/routing/xxx"، "اسم_المنتج": "منتج الجهاز 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": "هذه هي كيفية تثبيت هذا الجهاز"، "الاستخدام": "هذه هي كيفية استخدام جهازي"، "الرمز": "router.svg"، "default_username": "cisco"، "default_password": "admin"، "الإعدادات": [ {"name": "إعدادات القالب الافتراضية"، "default": true، "template_type": "qemu"، "template_properties": {"الرمز": "multilayer_router.svg"، "first_port_name": "ethernet0"، "port_name_format": "ethernet{port1}"، "adapter_type": "e1000"، "adapters": 2، "ram": 4096، "وحدة المعالجة المركزية": 1،"hda_disk_interface": "scsi"، "النظام الأساسي": "x86_64"، "نوع_وحدة التحكم": "vnc"، "boot_priority": "cd"، "options": ""} }, {"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/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": "هذه هي الطريقة استخدم هذا الإصدار"،"الرمز": "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