پرش به مطلب اصلی

راهنمای پیکربندی و مدیریت مخزن PVM

مقدمه

این سند روش استاندارد نصب و به‌روزرسانی پلایوید را از طریق مخزن (Repository) تشریح می‌کند. با استفاده از این روش، مدیریت نصب، به‌روزرسانی و نگهداری نرم‌افزار به‌صورت متمرکز، ساده و قابل اطمینان انجام می‌شود و دیگر نیازی به استفاده از فایل ISO برای نصب یا ارتقاء نسخه‌ها نخواهد بود.

دستاوردهای این راهنما

پس از مطالعه این سند، شما قادر خواهید بود:

اهداف آموزشی
  • نصب بدون نیاز به فایل ISO: پلایوید را از طریق Repository نصب کنید. این فرآیند هم برای محیط‌های آنلاین (Online Repository) و هم برای محیط‌های آفلاین یا ایزوله (Offline Repository) به‌طور کامل پوشش داده شده است.
  • ارتقاء آسان (Upgrade): در صورتی که پلایوید از قبل روی سیستم نصب شده باشد، آن را از طریق Repository به نسخه‌های جدیدتر ارتقاء داده و آخرین به‌روزرسانی‌ها و اصلاحات نرم‌افزاری را به‌صورت استاندارد و ایمن دریافت کنید.

روش‌های ارائه مخزن PVM به سرور مقصد

به‌طور کلی، اتصال سرور به مخزن PVM از سه روش امکان‌پذیر است. با توجه به شرایط شبکه خود، یکی از روش‌های زیر را انتخاب کنید:

حالت آنلاین (Online)

اتصال مستقیم سرور به مخزن عمومی ابری (CloudAvid) جهت دریافت مستقیم و خودکار بسته‌ها از بستر اینترنت.

حالت آفلاین / میرور (Offline Mirror)

دریافت کامل محتوای مخزن روی یک سیستم دارای دسترسی به اینترنت و انتقال آن به محیط ایزوله (Air-gapped) از طریق حامل فیزیکی (مانند هارد/فلش) یا شبکه داخلی.

استفاده از فایل ISO به‌عنوان مخزن محلی

مانت کردن (Mount) فایل ISO روی سرور و استفاده مستقیم از محتوای آن به‌عنوان یک Repository محلی، بدون نیاز به دانلود یا ساخت مخزن میرور کامل.

مقایسه روش‌ها

روشنیاز به اینترنتحجم پیاده‌سازیمناسب برای
آنلاین✅ داردکمسرورهای متصل به اینترنت
آفلاین (Mirror)❌ ندارد (پس از انتقال)زیادمحیط‌های ایزوله بزرگ
فایل ISO محلی❌ نداردکممحیط‌های ایزوله کوچک یا موقت
پیشنهاد ما

برای محیط‌های دارای دسترسی به اینترنت، روش اول (حالت آنلاین) به دلیل سادگی و دریافت سریع‌ترین آپدیت‌ها توصیه می‌شود. برای محیط‌های امنیتی و ایزوله، روش دوم و سوم بهترین گزینه‌ها هستند.

روش اول: پیکربندی آنلاین

در این سناریو، فرض بر این است که سرور هدف دسترسی اینترنتی دارد.

نصب بسته تنظیمات مخزن (PVM Release Package)

با نصب این بسته، کلید عمومی GPG و تنظیمات مربوط به مخزن CloudAvid Repository به‌صورت خودکار روی سیستم اعمال می‌شود.

dnf install https://repository.cloudavid.com/repo/release/pvm-release-latest.rpm
نکته

اگر بسته pvm-release از قبل روی سیستم نصب شده است، برای دریافت آخرین تغییرات و به‌روزرسانی تنظیمات مخزن، دستور زیر را اجرا کنید:

dnf update --repo pvm-repo

این دستور متادیتا و بسته‌های موجود در مخزن pvm-repo را با آخرین نسخه منتشرشده همگام‌سازی می‌کند.

بررسی صحت نصب

پس از تکمیل نصب، وجود فایل تنظیمات و کلید امنیتی را بررسی نمایید.

مسیر فایل تنظیمات مخزن:

cat /etc/yum.repos.d/pvm.repo

مسیر کلید عمومی GPG:

ls -l /etc/pki/rpm-gpg/RPM-GPG-KEY-PVM

نکته فنی: تمامی فایل‌های دارای پسوند .repo در مسیر /etc/yum.repos.d/ توسط مدیر بسته (DNF/YUM) خوانده می‌شوند.

مدیریت مخزن و کش

برای اطمینان از عملکرد صحیح مخزن، دستورات زیر را به ترتیب اجرا کنید:

مشاهده وضعیت مخازن (فقط فعال‌ها):

dnf repolist

مشاهده تمام مخازن (فعال و غیرفعال):

dnf repolist --all

بازسازی کش (پس از هر تغییر در تنظیمات):

dnf clean all
dnf makecache

به‌روزرسانی بسته تنظیمات مخزن

در صورت نیاز به به‌روزرسانی خودِ فایل تنظیمات مخزن یا کلید GPG، می‌توانید بسته pvm-release را جداگانه ارتقا دهید:

dnf upgrade pvm-release \
--disablerepo='*' \
--enablerepo='pvm-repo'

هشدار: شناسه pvm-repo باید دقیقاً با مقدار تعریف شده در بخش [section] داخل فایل /etc/yum.repos.d/pvm.repo مطابقت داشته باشد. برای اطمینان از شناسه صحیح، خروجی dnf repolist --all را چک کنید.

روش دوم: پیکربندی آفلاین

این فرآیند شامل سه مرحله اصلی است: دانلود روی سیستم متصل (Source)، انتقال به محیط ایزوله (Transfer)، و پیکربندی روی سرور مقصد (Target).

مرحله ۱: آماده‌سازی روی سیستم Source (متصل به اینترنت)

ابتدا ابزار ضروری reposync را نصب کرده و سپس تنظیمات مخزن رسمی PVM را اعمال کنید.

نصب پیش‌نیاز:

dnf install dnf-plugins-core

نصب پیکربندی مخزن:

dnf install https://repository.cloudavid.com/repo/release/pvm-release-latest.rpm

مرحله ۲: دانلود (Sync) کامل مخزن

یک دایرکتوری برای نگهداری فایل‌های مخزن ایجاد کرده و عملیات همگام‌سازی را آغاز کنید.

mkdir -p /srv/pvm-repository

اجرای دستور reposync برای دریافت RPM ها و متادیتا:

dnf reposync \
--repoid=pvm7.0 \
--repoid=pvm-extras \
--repoid=pvm-qemu-kvm \
--repoid=pvm-repo \
--download-path=/srv/pvm-repository \
--download-metadata

تشریح پارامترها:

پارامترتوضیحات
--repoid=شناسه (ID) مخزن موردنظر برای دانلود.
--download-path=مسیر ذخیره‌سازی فایل‌های RPM.
--download-metadataدریافت اطلاعات متا (پوشه repodata) تا نیازی به اجرای مجدد createrepo_c نباشد.

مرحله ۳: آماده‌سازی برای انتقال

ساختار دایرکتوری پس از اتمام دانلود به‌صورت زیر خواهد بود:

/srv/pvm-repository/
├── pvm7.0/
├── pvm-extras/
├── pvm-qemu-kvm/
└── pvm-repo/

کپی کردن کلید GPG در کنار مخزن (جهت استفاده در سرور مقصد):

cp /etc/pki/rpm-gpg/RPM-GPG-KEY-PVM /srv/pvm-repository/

بررسی وجود پوشه‌های repodata در زیرشاخه‌ها:

find /srv/pvm-repository -type d -name repodata

مرحله ۴: بسته‌بندی و انتقال

کل محتوای مخزن را فشرده‌سازی کنید تا آماده انتقال شود:

tar -czf pvm-repository.tar.gz -C /srv pvm-repository

فایل pvm-repository.tar.gz را USB یا شبکه مدیریت، به سرور مقصد منتقل کنید.

روی سرور مقصد، فایل را استخراج نمایید:

mkdir -p /srv
tar -xzf pvm-repository.tar.gz -C /srv

استفاده از مخزن آفلاین روی سرور مقصد

اگر قصد دارید مخزن فقط روی همان سرور محلی مورد استفاده قرار گیرد (بدون راه‌اندازی وب‌سرور HTTP)، می‌توانید از پروتکل file:// استفاده کنید.

۱. ایجاد فایل تنظیمات مخزن محلی

ابتدا مسیر دقیق پوشه‌هایی که حاوی repodata هستند را پیدا کنید (خروجی دستور find در بخش قبل). سپس فایل تنظیمات جدید را بسازید:

vi /etc/yum.repos.d/pvm-local.repo

محتوای زیر را با توجه به مسیر استخراج شده در فایل وارد کنید:

[pvm-repo]
name=PVM Local Repository
baseurl=file:///srv/pvm-repository/pvm-repo
enabled=0
gpgcheck=0

[pvm-extras]
name=PVM EL$releasever - Extras
baseurl=file:///srv/pvm-repository/extras/
enabled=1
gpgcheck=1
metadata_expire=0
module_hotfixes=true
gpgkey=file:///srv/pvm-repository/RPM-GPG-KEY-PVM

[pvm7.0]
name=PVM EL$releasever - 7.0
baseurl=file:///srv/pvm-repository/pvm-7.0/
enabled=1
gpgcheck=1
metadata_expire=0
module_hotfixes=true
gpgkey=file:///srv/pvm-repository/RPM-GPG-KEY-PVM

[pvm-qemu-kvm]
name=PVM EL$releasever - qemu-kvm
baseurl=file:///srv/pvm-repository/pvm-qemu-kvm/
enabled=0
gpgcheck=1
metadata_expire=0
module_hotfixes=true
gpgkey=file:///srv/pvm-repository/RPM-GPG-KEY-PVM

نکته مهم: مقدار baseurl باید دقیقاً به پوشه والد repodata اشاره کند. اگر مسیر اشتباه باشد، مدیر بسته قادر به خواندن مخزن نخواهد بود.

نهایی‌سازی و تست

پس از ذخیره فایل تنظیمات، کش سیستم را به‌روزرسانی کنید:

dnf clean all
dnf makecache

بررسی نهایی لیست مخازن فعال:

dnf repolist --all

روش سوم: استفاده از فایل ISO به‌عنوان مخزن محلی (Local DNF/YUM)

این مستند به تشریح مراحل تبدیل فایل نصبی ISO به یک مخزن (Repository) محلی بر روی سیستم‌عامل لینوکس می‌پردازد. این روش برای زمانی مناسب است که دسترسی به مخازن اینترنتی محدود باشد یا نیاز به نصب بسته‌ها با سرعت بالا از روی سرور محلی وجود داشته باشد.

مرحله صفر: آماده‌سازی و انتقال فایل ISO

قبل از هرگونه تنظیمات روی سرور، باید فایل ISO را با کیفیت و صحت کامل روی سرور مقصد قرار دهیم.

آپلود فایل ISO با استفاده از WinSCP

WinSCP ابزار قدرتمندی برای انتقال فایل بین سیستم ویندوز و سرور لینوکس (از طریق پروتکل SCP/SFTP) است. مراحل زیر را برای آپلود انجام دهید:

  1. اجرای برنامه: نرم‌افزار WinSCP را باز کنید.
  2. اتصال به سرور:
    • File Protocol: SFTP (یا SCP)
    • Host name: آدرس IP سرور مقصد
    • Port: 22
    • User name: کاربری با دسترسی روت (مانند root)
    • Password: رمز عبور کاربر
    • دکمه Login را بزنید.
  3. انتخاب مسیر مقصد:
    • پس از اتصال، در پنل سمت راست (که نشانگر file system سرور است)، وارد مسیر موردنظر شوید. پیشنهاد می‌شود یک پوشه مخصوص ایجاد کنید، مثلاً:
      /root/iso/
      (می‌توانید راست کلیک کرده و گزینه Create Directory را بزنید).
  4. آپلود فایل:
    • در پنل چپ (سیستم ویندوز)، فایل ISO را پیدا کنید.
    • فایل را Drag کرده و در پنل راست (داخل پوشه /root/iso/) رها کنید تا فرآیند آپلود شروع شود.
    • منتظر بمانید تا عملیات با موفقیت به پایان رسد.

نکته: فایل‌های ISO معمولاً حجم بالایی دارند؛ لذا برقراری ارتباط پایدار شبکه در طول دانلود الزامی است.


بررسی یکپارچگی فایل (MD5 Checksum)

پس از اتمام آپلود، بسیار مهم است که مطمئن شویم فایل هنگام انتقال دچار خطا یا Corruption نشده است. برای این کار از الگوریتم MD5 استفاده می‌کنیم.

اگر مقدار MD5 مرجع (اصلی) فایل ISO را از سایت تولیدکننده دارید:

  1. با استفاده از ترمینال سرور (Putty) به سرور متصل شوید.
  2. با دستور زیر، هش MD5 فایل آپلود شده را محاسبه کنید:
    md5sum /root/iso/pvm-7.0.44-el9.iso
  3. خروجی دستور (که یک رشته کاراکتری طولانی است) را با مقدار MD5 اصلی که از قبل داشتید (یا روی سیستم مبدأ محاسبه کرده‌اید) مقایسه کنید.
    • اگر متفاوت بود: فایل خراب است. باید مجدداً آپلود شود.
    • اگر یکسان بود: فایل با سلامت کامل منتقل شده و آماده استفاده است.

مرحله ۱: بررسی فایل ISO روی سرور

اطمینان حاصل کنید که فایل ISO در مسیر مشخص شده موجود است.

ls -lh /root/iso/pvm-7.0.44-el9.iso

(خروجی باید حجم فایل را نمایش دهد، نه پیغام "No such file or directory")

مرحله ۲: ایجاد مسیر Mount

یک دایرکتوری ایجاد کنید تا محتوای فایل ISO در آن قابل مشاهده شود.

mkdir -p /mnt/iso

مرحله ۳: Mount موقت فایل ISO

فایل ISO را به عنوان یک دیسک مجازی روی مسیر ساخته شده mount کنید.

mount -o loop,ro /root/iso/pv-7.0.44-el9.iso /mnt/iso
  • گزینه loop: دستگاه حلقه (Loop device) را ایجاد می‌کند.
  • گزینه ro: (اختیاری اما توصیه‌شده) فایل را به‌صورت فقط‌خواندنی Mount می‌کند تا از تغییرات تصادفی جلوگیری شود.

بررسی وضعیت Mount:

findmnt /mnt/iso

یا مشاهده محتویات:

ls -lah /mnt/iso

ساختار استاندارد ISO: معمولاً شامل دایرکتوری‌هایی مانند زیر است:

  • PVMRepo/ (حاوی بسته‌های اصلی PVM)
  • PVMQemuKvmRepo/
  • QemuKvmRepo/
  • EFI/, images/, isolinux/, media.repo

مرحله ۴: بررسی ساختار Repository داخل ISO

برای اینکه ابزار مدیریت بسته (DNF) بتواند از این مسیر استفاده کند، باید دایرکتوری repodata در داخل مسیر مخزن وجود داشته باشد.

بررسی وجود متادیتای مخزن PVM:

ls -lah /mnt/iso/PVMRepo
ls -lah /mnt/iso/PVMRepo/repodata

(وجود فایل‌هایی مانند repomd.xml در این پوشه ضروری است)

مرحله ۵: ساخت فایل پیکربندی Repository برای DNF

حالا باید به سیستم‌عامل بگوییم که از این مسیر به عنوان منبع نصب نرم‌افزار استفاده کند. فایل‌های تنظیمات در مسیر /etc/yum.repos.d/ ذخیره می‌شوند.

  1. فایل جدیدی بسازید (مثلاً با ادیتور vi یا nano):

    vim /etc/yum.repos.d/pvm-iso.repo
  2. محتوای زیر را داخل فایل قرار دهید:

    [pvm-iso]
    name=Plaivid ISO - Local Repository
    baseurl=file:///mnt/iso/PVMRepo
    enabled=1
    gpgcheck=0

    [pvm-qemu-iso]
    name=PVM QEMU KVM Repository
    baseurl=file:///mnt/iso/PVMQemuKvmRepo
    enabled=1
    gpgcheck=0
    # سایر_repoها را به همین ترتیب اضافه کنید...

نکته فنی: برای مسیرهای محلی (Local Filesystem) حتماً باید از سه اسلش (file:///) استفاده کنید. دو اسلش پروتکل فایل و یک اسلش مسیر ریشه (Root Path) را نشان می‌دهد.

مرحله ۶: پاکسازی کش و بازسازی Metadata

پس از ساخت فایل .repo، باید سیستم را مجبور کنیم تا اطلاعات مخزن جدید را بخواند.

dnf clean all
dnf makecache

تأییدیه نهایی: برای اطمینان از فعال شدن مخزن، لیست مخازن را چک کنید:

dnf repolist

(خروجی باید شامل نام pvm-iso باشد).

مرحله ۷: فعال‌سازی امنیتی (GPG Check)

در حالت پیش‌فرض مثال قبلی، gpgcheck=0 بود یعنی اصالت بسته‌ها بررسی نمی‌شد. برای محیط‌های Production پیشنهاد می‌شود این امنیت فعال گردد.

  1. پیدا کردن کلید امنیتی داخل ISO:

    find /mnt/iso -maxdepth 2 -type f -iname '*GPG*'

    (معمولاً مسیر کلید شبیه /mnt/iso/RPM-GPG-KEY-PVM است).

  2. ویرایش فایل مخزن و تنظیمات GPG:

    [pvm-iso]
    name=Plaivid ISO
    baseurl=file:///mnt/iso/PVMRepo
    enabled=1
    gpgcheck=1
    gpgkey=file:///mnt/iso/RPM-GPG-KEY-PVM

استفاده از دیسک فیزیکی (DVD/CD-ROM) به‌عنوان جایگزین فایل ISO

اگر به‌جای فایل ISO مجازی قصد دارید از DVD فیزیکی داخل درایو سرور استفاده کنید، این روش را به‌صورت جداگانه و به‌عنوان جایگزین مسیر ISO دنبال کنید:

  1. شناسایی دیسک:

    lsblk

    (معمولاً به‌صورت /dev/sr0 یا /dev/cdrom نمایش داده می‌شود)

  2. ساخت مسیر و Mount:

    mkdir -p /mnt/dvd
    mount -o ro /dev/sr0 /mnt/dvd
  3. تنظیم فایل Repository (توجه به تغییر مسیر baseurl):

    [rocky9-dvd-pvm]
    name=Rocky Linux 9 DVD - PVM
    baseurl=file:///mnt/dvd/PVMRepo
    enabled=1
    gpgcheck=0

مرحله ۸: جدا کردن (Unmount) کردن ISO/DVD

پس از پایان عملیات نصب، برای آزاد کردن منابع یا جهت خارج کردن دیسک، باید Unmount انجام دهید.

شرط لازم: اطمینان حاصل کنید هیچ ترمینالی در مسیر /mnt/iso یا /mnt/dvd باز نیست (Terminal شما نباید در داخل این پوشه باشد).

umount /mnt/iso

خطایابی (Troubleshooting): اگر با خطای target is busy مواجه شدید:

  1. فرایندهایی را که از مسیر استفاده می‌کنند، پیدا کنید:
    fuser -vm /mnt/iso
  2. با دستور cd / به مسیر ریشه برگردید یا فرایندهای مربوطه را ببندید.
  3. مجدداً دستور umount را اجرا کنید.

جمع‌بندی (Checklist)

برای راه‌اندازی یک مخزن محلی موفق، چک‌لیست زیر را مدنظر قرار دهید:

  1. فایل ISO با روشی امن (مانند WinSCP) آپلود شود.
  2. یکپارچگی فایل با MD5 تأیید شود.
  3. یک دایرکتوری خالی ایجاد و ISO با گزینه‌های loop,ro Mount شود.
  4. وجود پوشه repodata داخل مسیر مخزن تأیید شود.
  5. فایل .repo در مسیر /etc/yum.repos.d/ با آدرس صحیح file:// ایجاد شود.
  6. کش سیستم (dnf clean all && dnf makecache) بازسازی شود.