راهنمای پیکربندی و مدیریت مخزن 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) است. مراحل زیر را برای آپلود انجام دهید:
- اجرای برنامه: نرمافزار WinSCP را باز کنید.
- اتصال به سرور:
File Protocol: SFTP (یا SCP)Host name: آدرس IP سرور مقصدPort: 22User name: کاربری با دسترسی روت (مانندroot)Password: رمز عبور کاربر- دکمه Login را بزنید.
- انتخاب مسیر مقصد:
- پس از اتصال، در پنل سمت راست (که نشانگر file system سرور است)، وارد مسیر موردنظر شوید. پیشنهاد میشود یک پوشه مخصوص ایجاد کنید، مثلاً:
(میتوانید راست کلیک کرده و گزینه/root/iso/
Create Directoryرا بزنید).
- پس از اتصال، در پنل سمت راست (که نشانگر file system سرور است)، وارد مسیر موردنظر شوید. پیشنهاد میشود یک پوشه مخصوص ایجاد کنید، مثلاً:
- آپلود فایل:
- در پنل چپ (سیستم ویندوز)، فایل ISO را پیدا کنید.
- فایل را Drag کرده و در پنل راست (داخل پوشه
/root/iso/) رها کنید تا فرآیند آپلود شروع شود. - منتظر بمانید تا عملیات با موفقیت به پایان رسد.
نکته: فایلهای ISO معمولاً حجم بالایی دارند؛ لذا برقراری ارتباط پایدار شبکه در طول دانلود الزامی است.
بررسی یکپارچگی فایل (MD5 Checksum)
پس از اتمام آپلود، بسیار مهم است که مطمئن شویم فایل هنگام انتقال دچار خطا یا Corruption نشده است. برای این کار از الگوریتم MD5 استفاده میکنیم.
اگر مقدار MD5 مرجع (اصلی) فایل ISO را از سایت تولیدکننده دارید:
- با استفاده از ترمینال سرور (Putty) به سرور متصل شوید.
- با دستور زیر، هش MD5 فایل آپلود شده را محاسبه کنید:
md5sum /root/iso/pvm-7.0.44-el9.iso
- خروجی دستور (که یک رشته کاراکتری طولانی است) را با مقدار 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/ ذخیره میشوند.
-
فایل جدیدی بسازید (مثلاً با ادیتور vi یا nano):
vim /etc/yum.repos.d/pvm-iso.repo -
محتوای زیر را داخل فایل قرار دهید:
[pvm-iso]name=Plaivid ISO - Local Repositorybaseurl=file:///mnt/iso/PVMRepoenabled=1gpgcheck=0[pvm-qemu-iso]name=PVM QEMU KVM Repositorybaseurl=file:///mnt/iso/PVMQemuKvmRepoenabled=1gpgcheck=0# سایر_repoها را به همین ترتیب اضافه کنید...
نکته فنی: برای مسیرهای محلی (Local Filesystem) حتماً باید از سه اسلش (
file:///) استفاده کنید. دو اسلش پروتکل فایل و یک اسلش مسیر ریشه (Root Path) را نشان میدهد.
مرحله ۶: پاکسازی کش و بازسازی Metadata
پس از ساخت فایل .repo، باید سیستم را مجبور کنیم تا اطلاعات مخزن جدید را بخواند.
dnf clean all
dnf makecache
تأییدیه نهایی: برای اطمینان از فعال شدن مخزن، لیست مخازن را چک کنید:
dnf repolist
(خروجی باید شامل نام pvm-iso باشد).
مرحله ۷: فعالسازی امنیتی (GPG Check)
در حالت پیشفرض مثال قبلی، gpgcheck=0 بود یعنی اصالت بستهها بررسی نمیشد. برای محیطهای Production پیشنهاد میشود این امنیت فعال گردد.
-
پیدا کردن کلید امنیتی داخل ISO:
find /mnt/iso -maxdepth 2 -type f -iname '*GPG*'(معمولاً مسیر کلید شبیه
/mnt/iso/RPM-GPG-KEY-PVMاست). -
ویرایش فایل مخزن و تنظیمات GPG:
[pvm-iso]name=Plaivid ISObaseurl=file:///mnt/iso/PVMRepoenabled=1gpgcheck=1gpgkey=file:///mnt/iso/RPM-GPG-KEY-PVM
استفاده از دیسک فیزیکی (DVD/CD-ROM) بهعنوان جایگزین فایل ISO
اگر بهجای فایل ISO مجازی قصد دارید از DVD فیزیکی داخل درایو سرور استفاده کنید، این روش را بهصورت جداگانه و بهعنوان جایگزین مسیر ISO دنبال کنید:
-
شناسایی دیسک:
lsblk(معمولاً بهصورت
/dev/sr0یا/dev/cdromنمایش داده میشود) -
ساخت مسیر و Mount:
mkdir -p /mnt/dvdmount -o ro /dev/sr0 /mnt/dvd -
تنظیم فایل Repository (توجه به تغییر مسیر baseurl):
[rocky9-dvd-pvm]name=Rocky Linux 9 DVD - PVMbaseurl=file:///mnt/dvd/PVMRepoenabled=1gpgcheck=0
مرحله ۸: جدا کردن (Unmount) کردن ISO/DVD
پس از پایان عملیات نصب، برای آزاد کردن منابع یا جهت خارج کردن دیسک، باید Unmount انجام دهید.
شرط لازم: اطمینان حاصل کنید هیچ ترمینالی در مسیر /mnt/iso یا /mnt/dvd باز نیست (Terminal شما نباید در داخل این پوشه باشد).
umount /mnt/iso
خطایابی (Troubleshooting):
اگر با خطای target is busy مواجه شدید:
- فرایندهایی را که از مسیر استفاده میکنند، پیدا کنید:
fuser -vm /mnt/iso
- با دستور
cd /به مسیر ریشه برگردید یا فرایندهای مربوطه را ببندید. - مجدداً دستور
umountرا اجرا کنید.
جمعبندی (Checklist)
برای راهاندازی یک مخزن محلی موفق، چکلیست زیر را مدنظر قرار دهید:
- فایل ISO با روشی امن (مانند WinSCP) آپلود شود.
- یکپارچگی فایل با MD5 تأیید شود.
- یک دایرکتوری خالی ایجاد و ISO با گزینههای
loop,roMount شود. - وجود پوشه
repodataداخل مسیر مخزن تأیید شود. - فایل
.repoدر مسیر/etc/yum.repos.d/با آدرس صحیحfile://ایجاد شود. - کش سیستم (
dnf clean all && dnf makecache) بازسازی شود.