---
title: قوالب أنظمة التشغيل وملفات ISO
description: جهّز صور أنظمة التشغيل التي ينشر منها العملاء: أنشئ قوالب CloudStack وسجّلها، واصنع قوالب cloud-image لـ Proxmox VE.
url: https://nexcmp.com/ar/docs/infrastructure/templates/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# قوالب أنظمة التشغيل وملفات ISO {#os-templates-and-isos}

> **المسار في لوحة الإدارة:** Services › Virtual Machines › Template (`/vm/templates`). تُعرض قوالب Proxmox لكل عنقود في Infrastructure › Cloud provider › Providers › (cluster) › Clusters.

## الوظيفة {#what-it-does}

القالب هو صورة نظام التشغيل التي يبدأ منها الجهاز الافتراضي الجديد. لا يخزّن NexCMP الصور بنفسه: بل يقرأ ما يبلّغ عنه CloudStack (القوالب الجاهزة والمميزة) أو ما تدرجه لعنقود Proxmox، ويتيح لك اختيار ما يُباع منها، مع اسم وأيقونة ومستخدم تسجيل دخول موجه للعملاء. توضح هذه الصفحة كيفية تجهيز صور تعمل بسلاسة مع NexCMP: تسجيل الدخول بكلمة المرور، والترقية الحية لـ CPU وRAM، وملف swap، وقرص root يتوسع تلقائياً ليلائم حجم الخطة.

## المتطلبات {#requirements}

| العنصر | المتطلب |
|---|---|
| أداة بناء قوالب CloudStack | جهاز Linux مزود بـ `libguestfs-tools` (`virt-customize`، `virt-sparsify`، `guestfish`) و`qemu-utils` و`curl` ونحو 5 GB من المساحة الحرة على القرص. لا حاجة إلى KVM أو صلاحيات root. يلزم اتصال بالإنترنت لتثبيت الحزم (أو البناء باستخدام `--offline`). |
| مكان أداة البناء | تأتي مع كل إصدار في `/opt/nexcmp/releases/<version>/share/templates/` على خادم اللوحة. لست بحاجة لتشغيلها هناك: انسخ المجلد إلى أي جهاز Linux. |
| خادم ويب | أي خادم HTTP(S) يمكن لجهاز التخزين الثانوي الافتراضي في CloudStack الوصول إليه، لنشر ملف `.qcow2` المكتمل. ولا يشترط أن يكون متاحاً عبر الإنترنت. |
| CloudStack | حساب يمتلك صلاحية تسجيل القوالب، ومُعرّف المنطقة (zone ID) ونوع نظام تشغيل متطابق. راجع [CloudStack](https://nexcmp.com/ar/docs/infrastructure/cloudstack/). |
| Proxmox VE | أجهزة افتراضية لقوالب cloud-init مع QEMU guest agent، جهاز واحد لكل نظام تشغيل وكل عقدة. راجع [Proxmox VE](https://nexcmp.com/ar/docs/infrastructure/proxmox/). |
| يعتمد على | ربط [CloudStack](https://nexcmp.com/ar/docs/infrastructure/cloudstack/) أو [Proxmox VE](https://nexcmp.com/ar/docs/infrastructure/proxmox/) أولاً. |

## تجهيز البنية التحتية {#prepare-the-infrastructure}

### CloudStack: بناء قالب {#cloudstack-build-a-template}

الصور الأساسية المدعومة (يتم تنزيل صورة المورّد والتحقق من المجموع الاختباري الخاص بها قبل إجراء أي تغيير):

| الصورة | `--distro` | مستخدم تسجيل الدخول |
|---|---|---|
| Ubuntu 22.04 | `ubuntu-22.04` | `ubuntu` |
| Ubuntu 24.04 | `ubuntu-24.04` | `ubuntu` |
| Debian 12 | `debian-12` | `debian` |
| Rocky Linux 9 | `rocky-9` | `rocky` |

توزيعات إضافية: أضف سطراً إلى `distros.conf` (رابط الصورة، وملف المجموع الاختباري، والعائلة `deb` أو `rpm`).

1. انسخ أداة البناء إلى جهاز البناء وشغّلها:

   ```bash
   cp -r /opt/nexcmp/releases/<version>/share/templates ~/templates && cd ~/templates
   ./build-template.sh --distro ubuntu-24.04 --version v7 --work ./out
   ```

   أضف `--panel-url https://cloud.example.com` لتضمين عميل مراقبة اختياري يعمل عند أول إقلاع ويسجل نفسه في لوحتك (عبر HTTPS فقط). بدونه، لن يُضاف أي عميل. خيارات أخرى: `--base <file>` لاستخدام صورة قمت بتنزيلها، و`--offline` لتخطي تثبيت الحزم.

2. النتيجة هي `out/ubuntu-24.04-v7.qcow2` وملف `.sha256` الخاص به. تنتهي عملية البناء بتشغيل `verify-image.sh`، والذي يفحص الصورة المكتملة في وضع القراءة فقط ويرفض أي صورة غير صالحة (يتم الاحتفاظ بها كـ `.unverified`). يمكنك تشغيله مجددًا في أي وقت: `./verify-image.sh out/ubuntu-24.04-v7.qcow2 --no-agent`.

ما تضعه أداة البناء في الصورة:

| العنصر | السبب |
|---|---|
| `qemu-guest-agent` | يمكن لـ CloudStack الاستعلام من الجهاز الافتراضي عن وحدات المعالجة المركزية وعناوين IP، وتجميد نشاطه مؤقتًا لإنشاء Snapshots. |
| cloud-init مع مصدر بيانات CloudStack، و`set_passwords` عند كل إقلاع، وتسجيل الدخول عبر SSH بكلمة المرور | يتم جلب كلمة المرور المُنشأة من الموجه الافتراضي ويعمل خيار **Reset password**. |
| قاعدة udev لمعالجات CPU وذاكرة RAM المضافة أثناء التشغيل | تصبح معالجات vCPU وذاكرة RAM المضافة أثناء التشغيل نشطة تلقائيًا، مما يسمح بعمل التوسيع المباشر وAuto Scaling. |
| خدمة ملف swap | يُنشئ `/swapfile` بالقيمة الأقل بين 50% من الذاكرة (RAM) و4 GiB بعد توسيع القرص. `touch /etc/cmp-swap.disabled` يعطل ذلك. |
| cloud-init `growpart` و`resizefs` | يتوسع قرص الجذر (root) الصغير إلى حجم قرص الخطة عند أول إقلاع. |
| معرّف machine-id فارغ، وبدون مفاتيح مضيف SSH | يحصل كل جهاز افتراضي على هويته الخاصة. |

::: warning تسمية القالب `<OS> <version> <vN>`
يقوم NexCMP بتفعيل **Auto Scaling** للقوالب التي ينتهي اسمها بـ `vN` أو `vN.M` مع **N بقيمة 6 أو أكثر** (`Ubuntu 24.04 v7`، `Rocky Linux 9 v7.1`). تفرض أداة البناء ذلك لـ `--version`. سجّل القالب بالاسم المطبوع تمامًا.
:::

3. انشر الملف وسجّله في CloudStack. استخدم قيمة SHA-256 التي طبعتها عملية البناء، ولا تقم بالتسجيل إلا بعد اكتمال كتابة الملف بالكامل:

   ```bash
   cmk list ostypes keyword="Ubuntu 24.04" filter=id,description
   cmk register template name="Ubuntu 24.04 v7" displaytext="Ubuntu 24.04 v7" \
     url=https://files.example.com/ubuntu-24.04-v7.qcow2 zoneid=<zone-id> format=QCOW2 hypervisor=KVM \
     ostypeid=<os-type-id> passwordenabled=true sshkeyenabled=true isdynamicallyscalable=true \
     requireshvm=true isextractable=false ispublic=true isfeatured=true \
     checksum="{SHA-256}<sha256 of the file>" \
     details[0].guest.cpu.mode=host-passthrough details[0].rootDiskController=osdefault
   ```

   - يتيح `passwordenabled=true` لـ CloudStack إنشاء كلمة مرور الجهاز الافتراضي.
   - يتيح `isdynamicallyscalable=true` إمكانية التوسيع المباشر أثناء التشغيل.
   - يلزم `host-passthrough` لإقلاع صور Rocky وAlma الحالية؛ بينما يحافظ `osdefault` على توافقية وحدة التحكم بالقرص.

4. انتظر حتى يصل القالب إلى حالة **Download Complete / Ready**.

تحتفظ صورة المورّد بحجمها الافتراضي الصغير (حوالي 3.5 GiB لـ Ubuntu وDebian، و10 GiB لـ Rocky). تذكّر أن حجم قرص الخطة لا يمكن أن يكون أصغر من قرص القالب.

### Proxmox VE: إنشاء قالب {#proxmox-ve-make-a-template}

أنشئ قالب جهاز افتراضي cloud-init لكل نظام تشغيل على كل عقدة تنشر إليها، مع تثبيت guest agent وتمكين تسجيل دخول root، ثم سجّله كـ `os-key=vmid`. الأوامر الكاملة متوفرة في [Proxmox VE](https://nexcmp.com/ar/docs/infrastructure/proxmox/). أداة بناء CloudStack الموضحة أعلاه **ليست** مخصصة لـ Proxmox: فهي تُعدّ cloud-init لمصدر بيانات CloudStack.

### ملفات ISO {#isos}

يقوم العملاء بتركيب ملفات ISO الخاصة بهم عبر وحدة **Images** (CloudStack) أو وحدة Dedicated Server. وهي منفصلة عن قوالب أنظمة التشغيل في هذه الصفحة. راجع [Modules](https://nexcmp.com/ar/docs/infrastructure/modules/) و[Dedicated servers](https://nexcmp.com/ar/docs/infrastructure/dedicated/).

## الربط في NexCMP {#connect-in-nexcmp}

1. افتح **Services › Virtual Machines › Template**. انقر فوق **Sync now** أو انتظر حتى 15 دقيقة. تضيف المزامنة القوالب الجاهزة والمميزة في CloudStack.

      ![صفحة Template التي تسرد القوالب المتزامنة مع حالتها الجاهزة وعمود CPU hot-plug](https://nexcmp.com/ar/docs/images/infrastructure/templates-01-list.webp)

2. انقر على **Edit** في القالب الجديد وحدد ما يراه العملاء:

   | الحقل | مثال للقيمة |
   |---|---|
   | اسم العرض للعملاء | `Ubuntu 24.04 LTS` |
   | عائلة نظام التشغيل | `ubuntu` (الأيقونة والمستخدم الافتراضي) |
   | الإصدار | `24.04` |
   | اسم مستخدم تسجيل الدخول | `ubuntu` (في Windows: `Administrator`؛ الأنظمة الأخرى: `root`) |
   | الأيقونة | عنوان URL للصورة، أو مسار أو اسم |
   | الترتيب | `10` |
   | نشط | On |
   | التوصيل السريع لـ vCPU/RAM (الترقية المباشرة) | **Auto by name (v6 or later)** أو **Yes** أو **No (needs a restart)** |

      ![مربع حوار تعديل القالب مع اسم موجه للعميل، وعائلة نظام التشغيل، ومستخدم تسجيل الدخول وخيار التوصيل السريع](https://nexcmp.com/ar/docs/images/infrastructure/templates-02-edit.webp)

3. قم بتفعيل القالب. يتم إخفاء أي قالب لم يعد معروضاً في CloudStack تلقائياً (وسيصلك تنبيه عبر Telegram إذا تم إعداده)؛ ولا يتم حذفه أبداً من NexCMP.

### استبدال قالب بإصدار بناء أحدث {#replace-a-template-with-a-newer-build}

استخدم **More › Replace with new version** في القالب المباع. اختر القالب الجديد والجاهز والمعطل حالياً. سيشير الإدخال المباع بعد ذلك إلى إصدار البناء الجديد ويحتفظ باسمه وترتيبه وأيقونته؛ ويتم تعطيل القديم كمسار للرجوع (للرجوع، استخدم **Replace** في الإدخال الجديد). لا تتأثر أجهزة VM قيد التشغيل. إذا كان إصدار البناء الجديد ينتمي لعائلة نظام تشغيل مختلفة، فقم بتحديد مربع التأكيد أولاً.

## التحقق {#verify}

1. يُظهر الصف **ready**، وبالنسبة لإصدارات البناء المسماة `vN` بقيمة N تبلغ 6 أو أكثر، **CPU hot-plug: supported**.
2. انشر جهاز VM تجريبياً واحداً من القالب وتحقق من داخل جهاز VM:
   - يمكنك تسجيل الدخول باستخدام كلمة المرور المعروضة في البوابة؛
   - `df -h /` يُظهر حجم قرص الخطة؛
   - بعد الترقية المباشرة (**Change plan** بدون إعادة تشغيل)، يزداد حجم `nproc` و`free -m`؛
   - `swapon --show` يعرض `/swapfile` (يتم تخطي ذلك في الأقراص التي تقل مساحتها الفارغة عن swap بالإضافة إلى 2 GiB)؛
   - `systemctl is-active qemu-guest-agent` يطبع `active`.
3. إذا قمت بتضمين العميل مسبقاً، فسيظهر جهاز VM ضمن الأجهزة المضيفة الخاضعة للمراقبة في اللوحة بعد دقيقة واحدة من أول إقلاع. يحتاج جهاز VM إلى عنوان IP عام خاص به: حيث تتعرف عليه اللوحة من خلال عنوان IP العام للمصدر.

## القيود والملاحظات {#limits-and-notes}

- أداة البناء مخصصة لنظام Linux فقط وتبني صور Linux. يمكن تسجيل الصور الأخرى (مثل Windows) في CloudStack بطرق أخرى؛ ويعرض NexCMP ما يبلّغ عنه CloudStack.
- يتم توفير عميل amd64 فقط؛ ويتم تخطي تثبيت العميل في المعماريات الأخرى.
- يتم فحص الصورة باستخدام `guestfish` ولكن لا يتم إقلاعها مطلقاً بواسطة أداة البناء. احرص دائماً على نشر جهاز VM تجريبي واحد قبل بيع أي صورة جديدة.
- تخطَّ العميل على جهاز VM واحد باستخدام `touch /etc/cmp-agent.disabled` قبل أول إقلاع. قم بإزالته لاحقاً باستخدام `systemctl disable --now cmp-agent cmp-agent-install; rm -rf /etc/cmp-agent /usr/local/bin/cmp-agent`، ثم احذف العميل في وحدة تحكم المسؤول.

## استكشاف الأخطاء وإصلاحها {#troubleshooting}

| العَرَض | السبب | الحل |
|---|---|---|
| فشل `virt-customize` في تنزيل الحزم | جهاز البناء لا يملك اتصال شبكة صادراً | أصلح DNS أو الخادم الوكيل على ذلك الجهاز، أو قم بالبناء باستخدام `--offline` على صورة أساسية تحتوي على الحزم بالفعل. |
| `libguestfs: error: /usr/bin/supermin exited with error status 1` | نواة المضيف غير قابلة للقراءة بواسطة المستخدم الحالي (Ubuntu) | `sudo chmod +r /boot/vmlinuz*`، أو شغّل البناء كـ root. |
| المجموع الاختباري مختلف، أو لم تعد صورة المورّد موجودة | يقوم المورّدون بنقل ملفات "latest" الخاصة بهم | قم بتنزيل الصورة بنفسك، وتحقق منها بمقارنتها بملف المجموع الاختباري الخاص بالمورّد ثم مررها باستخدام `--base`. |
| Rocky: يتعذر تركيب نظام XFS أحدث | نواة المضيف قديمة جداً | قم بالبناء على جهاز بنواة حديثة. |
| `--version must be v6 or higher` | يجب أن يكون الاسم `vN` بقيمة N تبلغ 6 أو أكثر | استخدم `--version v7`. |
| `--panel-url must be a plain https:// URL` | يتم تنزيل العميل وتشغيله كـ root، لذلك يتم رفض بروتوكول HTTP العادي | استخدم عنوان `https://` URL دون مسافات أو علامات اقتباس أو سلسلة استعلام. |
| يبقى القالب بحالة **not ready** | لم ينتهِ CloudStack من التنزيل بعد | انتظر **Download Complete**، وتحقق من قدرة جهاز VM لوحدة التخزين الثانوية على الوصول إلى عنوان URL. |
| يُظهر الصف **no-pass** | تم تسجيل القالب دون `passwordenabled=true` | أعد تسجيله باستخدام ذلك الخيار. |
| خاصية التوصيل السريع لـ CPU تظهر كـ **unsupported** | الاسم لا ينتهي بـ `vN` (حيث N هو 6 أو أكثر) | أعد تسمية القالب، أو اضبط **vCPU/RAM hot-plug** على **Yes** في Edit إذا كانت الصورة تتضمن قاعدة udev. |
| ظهور "قائمة قوالب فارغة" بعد الاتصال الأول | لم تتم عملية المزامنة بعد | انقر على **Sync now** (يتطلب تشغيل الـ worker) أو انتظر دورة الـ 15 دقيقة. |
