تطوير الويب

تثبيت Proxmox VE 9.1 على خادم منزلي خطوة بخطوة

4 min de lecture

مقال مرتبط · هذا الدليل جزء من سلسلة Kubernetes منزلي على Proxmox VE. للنظرة العامّة على المعمارية المستهدفة والدلائل السبعة التالية، اقرأ أوّلًا الدليل الرئيسي.

Proxmox Virtual Environment 9.1 هو hypervisor حرّ مبنيّ على Debian 13.2 « Trixie »، بنواة Linux 6.17.2، يجمع افتراضية KVM، حاويات LXC، ZFS أصلي، وإدارة بواجهة ويب. هذه القاعدة التي تُثبَّت أوّلًا عند بناء بيئة Kubernetes منزلية: ستُجزّئ لاحقًا الخادم الفيزيائي إلى ست آلات افتراضية ستستقبل Talos Linux. يصف هذا الدليل التثبيت النظيف لـ Proxmox VE 9.1 على mini-PC أو خادم منزلي، من تنزيل ISO إلى أوّل console قابل للوصول ومُؤَمَّن.

متطلّبات العتاد والبرمجيات

قبل الانطلاق، تحقّق من النقاط الآتية. على العتاد: معالج 64 بت مع تفعيل الافتراضية في BIOS (VT-x على Intel، AMD-V على AMD)، 16 جيغا RAM كحدّ أدنى (32 جيغا موصى بها لعنقود Kubernetes كامل)، قرص SSD أو NVMe بسعة 256 جيغا على الأقلّ لنظام Proxmox، ومن المثالي قرص ثانٍ لتخزين أقراص الـ VMs. على البرمجيات: مفتاح USB بسعة 2 جيغا على الأقلّ سيُمسَح بالكامل، حاسوب آخر لكتابة ISO، ووصول إلى الموجّه لحجز عنوان IP ثابت.

على الشبكة، خطّط لمدى IP حرّ في الشبكة المحلّية. مثال هذا الدليل يستعمل 192.168.1.50 لـ Proxmox وقناع /24 مع بوّابة 192.168.1.1. عدِّل وفق الطوبولوجيا الحقيقية.

الخطوة 1 — تنزيل ISO Proxmox VE 9.1

كلّ صور Proxmox الرسمية تُوزَّع من موقع الناشر. نتجنّب مرايا الطرف الثالث لأنّ الـ ISO يحوي حزمًا موقَّعة وليس لدينا سبب لإدخال وسيط. التنزيل من الصفحة الرسمية، حجمه نحو 1.5 جيغا. للتحقّق من السلامة بعد التنزيل، قارن SHA-256 المنشور بجانب الرابط مع المحسوب محلّيًّا.

# على Linux أو macOS، بعد التنزيل
sha256sum proxmox-ve_9.1-1.iso
# القيمة يجب أن تتطابق تمامًا مع المنشورة على صفحة تنزيل Proxmox

إن اختلف البصمتان، فالملفّ تضرّر أثناء النقل أو اعتُرض: لا تستعمله، أعد التنزيل. تطابق تامّ يُؤكِّد أنّ الـ ISO أصلي وكامل.

الخطوة 2 — إنشاء مفتاح USB قابل للإقلاع

ISO Proxmox هجين: نكتبه مباشرة على مفتاح USB دون المرور بصورة منظَّمة. على Linux، أداة dd GNU تقوم بالعمل. على macOS، dd BSD لا يتعرّف على conv=fsync ولا status=progress؛ يمكن استعمال balena-etcher (GUI) أو sudo dd if=...iso of=/dev/rdiskX bs=4m (devices « raw » rdiskX وليس diskX لسرعة صحيحة). حدِّد مفتاح USB قبل كلّ شيء — خطأ الهدف يُحطّم القرص الخطأ بلا تحذير.

# تحديد مفتاح USB (Linux)
lsblk
# يظهر المفتاح نمطيًّا كـ /dev/sdb أو /dev/sdc، تأكّد من الحجم

# كتابة ISO على المفتاح (استبدل /dev/sdX بالحرف الصحيح)
sudo dd if=proxmox-ve_9.1-1.iso of=/dev/sdX bs=4M status=progress conv=fsync
sync

العملية تستغرق دقائق قليلة. في النهاية، المفتاح جاهز: يمكن نزعه ووصله بالخادم المستهدف. على Windows مع Rufus، اختر وضع « DD Image » بدل « ISO » للحفاظ على بنية صورة Proxmox الهجينة.

الخطوة 3 — إقلاع المُثبِّت واختيار نظام الملفّات

وصِّل مفتاح USB بالخادم، شغّله، وادخل قائمة الإقلاع (F11 أو F12 أو Esc حسب الصانع). اختر مفتاح USB كجهاز إقلاع. يُقلِع مُثبِّت Proxmox بقائمة رسومية. اختر « Install Proxmox VE (Graphical) ». اقبل عقد الترخيص GPL.

شاشة اختيار القرص المستهدف هي أحد القرارات الهيكلية. لاستعمال Kubernetes منزلي، نُفضِّل ZFS RAID-1 إن توفّر قرصان فيزيائيان (مرآة للحماية من فقدان قرص)، أو ZFS RAID-0 على قرص واحد (snapshots وضغط أصلي، دون التكرار). انقر « Options » بجوار اختيار القرص، اختر « zfs (RAID0) » أو « zfs (RAID1) » حسب العتاد، واترك الخيارات المتقدّمة على افتراضها (ashift=12 يناسب SSDs الحديثة).

# إعدادات موصى بها على شاشة ZFS Options
Filesystem: zfs (RAID0) أو zfs (RAID1)
ashift:     12
compress:   lz4
checksum:   on
copies:     1
hdsize:     اترك القيمة القصوى

ضغط LZ4 مجّاني على الـ CPU ويُوفّر نمطيًّا 20 إلى 40% من المساحة حسب نوع البيانات. اضغط « OK » ثم « Next ».

الخطوة 4 — تحديد التموضع، كلمة السرّ، والشبكة

الشاشات التالية تطلب البلد (يُستعمل لمرايا الحزم)، النطاق الزمني، وتخطيط لوحة المفاتيح. على شاشة كلمة سرّ المدير، اختر سرًّا طويلًا وفريدًا: هي كلمة السرّ الوحيدة التي تحمي واجهة الويب ووصول SSH root. لا تُعِد استعمال كلمة سرّ خدمة أخرى.

شاشة الشبكة تطلب الواجهة الرئيسية، hostname FQDN، عنوان IP مع قناعه، البوّابة، وخادم DNS. اختر hostname وصفيًّا مثل pve01.lan والـ IP المحجوز سلفًا في الموجّه.

# مثال إعداد الشبكة
Management Interface: enp1s0 (البطاقة السلكية الرئيسية)
Hostname (FQDN):      pve01.lan
IP Address (CIDR):    192.168.1.50/24
Gateway:              192.168.1.1
DNS Server:           192.168.1.1

راجع شاشة الملخّص ثم انقر « Install ». التثبيت يستغرق 5 إلى 10 دقائق حسب سرعة القرص. في النهاية يُعيد المُثبِّت التشغيل. انزع مفتاح USB أثناء إعادة التشغيل لتجنّب الدخول إلى المُثبِّت من جديد.

الخطوة 5 — أوّل وصول ويب وتعطيل مستودع المؤسّسة

بعد إعادة التشغيل، يعرض Proxmox console نصّي يُبيّن URL لواجهة الويب: https://192.168.1.50:8006. افتح هذا الـ URL في متصفّح. الشهادة المعروضة موقَّعة ذاتيًّا: اقبلها مؤقّتًا، سنستبدلها لاحقًا. سجِّل الدخول بـ root، كلمة السرّ المختارة أثناء التثبيت، وrealm Linux PAM standard authentication.

عند أوّل تسجيل دخول، تُشير نافذة إلى أنّ اشتراك Proxmox غير صالح. هذا طبيعي للاستعمال المنزلي: نعمل مع مستودع المجتمع no-subscription الذي يستلم نفس الحزم كمستودع enterprise لكن بتأخير أيّام. يجب التبديل يدويًّا.

# على console Proxmox (عبر واجهة الويب ← Datacenter ← pve01 ← Shell)
# تعطيل مستودع enterprise
sed -i 's/^deb/#deb/' /etc/apt/sources.list.d/pve-enterprise.list
sed -i 's/^deb/#deb/' /etc/apt/sources.list.d/ceph.list

# تفعيل مستودع no-subscription
echo "deb http://download.proxmox.com/debian/pve trixie pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list

# تحديث قائمة الحزم
apt update && apt -y dist-upgrade
reboot

بعد reboot، يختفي تحذير الاشتراك من shell لكنّه يبقى ظاهرًا في كلّ تسجيل دخول web (تجميلي). الآلة محدَّثة الآن وجاهزة لاستقبال أحمال. تحقّق من الإصدار المثبَّت.

pveversion
# يجب أن يُرجع pve-manager/9.1.x/xxxxxxxx (running kernel: 6.17.2-x-pve)

إن كان الإصدار 9.1.x مع نواة 6.17.2-pve، نجح التثبيت والتحديث. هو الأساس المنتظَر.

الخطوة 6 — تهيئة pool ZFS لأقراص الـ VMs

إن توفّر للخادم قرص ثانٍ (إضافة إلى قرص النظام)، فهذه لحظة تحضيره لاستضافة الأقراص الافتراضية. لـ Kubernetes، هذا التخزين المحلّي سيستقبل أقراص نظام الـ VMs الست لـ Talos. افتح Datacenter ← pve01 ← Disks في واجهة الويب وحدِّد القرص الثاني (مثلًا /dev/nvme1n1).

# إنشاء pool ZFS مخصَّص لأقراص الـ VMs
zpool create -f -o ashift=12 vmpool /dev/nvme1n1
zfs set compression=lz4 vmpool
zfs set atime=off vmpool

# تحقّق
zpool status vmpool
zfs list vmpool

الـ pool vmpool يظهر فورًا، جاهزًا للاستعمال. تعطيل atime يتفادى كتابات عقيمة مع كلّ قراءة، ممّا يُطيل عمر SSDs.

أعلِن الـ pool بعد ذلك كتخزين Proxmox قابل للاستعمال من الـ VMs، من واجهة الويب: Datacenter ← Storage ← Add ← ZFS. أعطِ المعرّف vmpool، اختر الـ pool vmpool، علِّم نوعَي المحتوى Disk image وContainer، وثبِّت. يصير التخزين قابلًا للاختيار عند إنشاء الـ VMs.

الخطوة 7 — التحقّق من bridge الشبكة الافتراضي

يُنشئ مُثبِّت Proxmox تلقائيًّا bridge Linux يُسمّى vmbr0 يربط بطاقة الشبكة الفيزيائية. سيكون هذا الـ bridge واجهة الشبكة لكلّ VMs Kubernetes: ستحصل على IP من DHCP الموجّه، كأيّ آلة على الشبكة المحلّية. تحقّق من وجوده وتماسكه.

cat /etc/network/interfaces
# يجب أن يحوي قسمًا شبيهًا بـ:
# auto vmbr0
# iface vmbr0 inet static
#         address 192.168.1.50/24
#         gateway 192.168.1.1
#         bridge-ports enp1s0
#         bridge-stp off
#         bridge-fd 0

ip -br addr show vmbr0
# يجب عرض IP المُسَنَد والحالة UP

إن كان الـ bridge غائبًا أو سيّء الضبط، لا حاجة لإعادة المُثبِّت: حرِّر /etc/network/interfaces يدويًّا وطبِّق بـ ifreload -a. لإعدادات متقدّمة (VLAN مخصَّص لعنقود Kubernetes، بطاقة شبكة ثانية لـ Ceph)، خطّط لـ VLAN-aware bridge بتفعيل VLAN aware في واجهة الويب.

الخطوة 8 — تأمين وصول SSH وتفعيل جدار الحماية

افتراضيًّا، يستمع SSH على المنفذ 22 ويقبل كلمة سرّ root. هذا غير مقبول حتى في المنزل. تعديلان بحدّ أدنى: منع توثيق كلمة السرّ، السماح فقط بمفاتيح SSH.

# على محطّة عملك، ولِّد زوج مفاتيح إن لم يكن موجودًا
ssh-keygen -t ed25519 -f ~/.ssh/pve_ed25519

# انسخ المفتاح العامّ إلى Proxmox
ssh-copy-id -i ~/.ssh/pve_ed25519.pub root@192.168.1.50

# على Proxmox، شَدِّد sshd
sed -i 's/^#?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sed -i 's/^#?PermitRootLogin.*/PermitRootLogin prohibit-password/' /etc/ssh/sshd_config
systemctl restart sshd

# اختبر من المحطّة: الاتصال يجب أن يمرّ بلا طلب كلمة سرّ
ssh -i ~/.ssh/pve_ed25519 root@192.168.1.50 'pveversion'

إن أرجع أمر الاختبار إصدار Proxmox، فالتوثيق بالمفتاح يعمل. عند هذه اللحظة فقط، نُحوِّل PermitRootLogin إلى prohibit-password نهائيًّا.

فعِّل بعد ذلك جدار حماية Proxmox على مستوى datacenter: Datacenter ← Firewall ← Options ← Firewall = Yes. دون قواعد حظر صريحة يبقى الجدار سلبيًّا، لكنّ تفعيله يُهيّئ الأرض لسياسات لكلّ VM التي نُعرّفها لاحقًا.

الخطوة 9 — التحقّق النهائي

التثبيت مكتمل. تمريرة أخيرة من الفحوص تُؤكِّد أنّ كلّ اللبنات تعمل قبل توفير أوّل VMs في الدليل التالي.

# Hypervisor يعمل
pveversion -v | head -5

# pool ZFS سليم
zpool status

# تخزين مُعلَن في Proxmox
pvesm status

# واجهة الويب قابلة للوصول (من محطّة أخرى)
# https://192.168.1.50:8006

معيار التحقّق: pveversion يُرجع 9.1.x، zpool status يُبيّن state: ONLINE على كلّ الـ pools، pvesm status يُدرج على الأقلّ local وlocal-zfs وvmpool. واجهة الويب تُجيب. الخادم جاهز لاستقبال الآلات الافتراضية.

أخطاء شائعة وحلول

العَرَض السبب الحلّ
المُثبِّت لا يُقلِع من USB Secure Boot مُفَعَّل في BIOS عطِّل Secure Boot، أبقِ UEFI مُفَعَّلًا
شاشة سوداء بعد التثبيت مُشغِّل رسوميات احتكاري غائب أضف nomodeset إلى خيارات إقلاع GRUB أوّل مرّة
واجهة الويب غير متاحة IP خاطئ أو جدار حماية الموجّه تحقّق من ip a على console، نفِّذ ping من محطّة أخرى
تحذير الاشتراك يستمرّ بعد إعادة ضبط المستودعات cache المتصفّح أو جلسة غير محدَّثة سجِّل خروج، فرِّغ cache، أعد تسجيل الدخول
apt update يُرجع « Repository not signed » مفتاح GPG no-subscription مفقود أعد التثبيت بـ apt install proxmox-archive-keyring

لاستكمال المسار

الـ hypervisor جاهز. الخطوة التالية إنشاء الآلات الافتراضية الست التي ستُكوِّن عنقود Kubernetes: ثلاث لـ control plane، ثلاث للـ workers. الدليل توفير VMs Talos Linux لـ Kubernetes يُفَصِّل ملفّات الـ CPU والأقراص وخيارات الإقلاع الملائمة لـ Talos. لفهم التسلسل العامّ وخيارات المعمارية التي تُبرّر هذه الست VMs، عُد إلى الدليل الرئيسي Kubernetes منزلي على Proxmox VE.

مصادر وتوثيق رسمي

  • صفحة تنزيل Proxmox VE 9.1: proxmox.com/downloads
  • ملاحظات إصدار Proxmox VE 9.1: البيان الرسمي
  • توثيق مدير Proxmox: pve.proxmox.com/pve-docs
  • Wiki ZFS على Proxmox: pve.proxmox.com/wiki/ZFS_on_Linux
  • إجراء الترقية 8 إلى 9: pve.proxmox.com/wiki/Upgrade_from_8_to_9

تباينات حسب العتاد

التثبيت الموصوف يفترض mini-PC أو خادم Intel/AMD x86_64 قياسيًّا. ثلاث تباينات تستحقّ الذكر لأنّها تُعدِّل خطوة دون تغيير الفلسفة العامّة.

Mini-PC ARM (Ampere Altra, Ampere One): Proxmox VE 9 يُوفّر صورة رسمية arm64 منذ 9.0. الإجراء يبقى مطابقًا لكن نُنزِّل ISO proxmox-ve_9.1-arm64.iso بدل amd64. كلّ الـ VMs المُنشَأة فوقه ستكون ARM، فيُنزَّل Talos Linux بـ arm64 أيضًا. انتبه: قليل من صور Docker الخارجية موجود في arm64، ممّا يُقيّد اختيار الأحمال.

خادم tower بمتحكّم RAID مادي: على Dell PowerEdge T-series أو HP ProLiant ML، متحكّم PERC أو Smart Array غالبًا في وضع RAID مادي افتراضيًّا. للاستفادة من ZFS، يجب تحويل المتحكّم إلى وضع HBA (تمرير مباشر للأقراص) من BIOS المتحكّم قبل التثبيت. وإلّا، يرى ZFS قرصًا افتراضيًّا وحيدًا، ممّا يُلغي الحماية من فقدان قرص فيزيائي.

عنقود Proxmox متعدّد العقد: إن كنت تملك ثلاث آلات، ثبِّت Proxmox على كلّ منها مستقلًّا ثم أنشئ عنقود Proxmox عبر Datacenter ← Cluster ← Create Cluster على المضيف الأوّل، ثم Join Cluster على المضيفين التاليين. عنقود Proxmox مختلف عن عنقود Kubernetes: يُتيح هجرة live للـ VMs بين الـ hypervisors وإدارة مركزية. لا تخزين مشترك مطلوب للهجرة ما دمت تقبل هجرة باردة (إيقاف ثم إعادة تشغيل).

أيًّا كان العتاد، النتيجة المنتظرة هي ذاتها: Proxmox VE 9.1 قابل للوصول عبر واجهة الويب، مع pool ZFS سليم وbridge شبكة وظيفي. على هذه القاعدة ستُبنى VMs Talos في الدليل التالي.

مقالات ذات صلة

Sponsoriser ce contenu

Cet emplacement est à vous

Position premium en fin d'article — c'est l'instant où les lecteurs sont le plus engagés. Réservez cet espace pour votre marque, votre formation ou votre offre.

Recevoir nos tarifs
Publicité