How to create local Repository on CentOS7

How to create local Repository on CentOS7

How to create local Repository on CentOS7

اضافه یا حذف یا بروز رسانی package های سیستم عامل یکی از وظایف اصلی یک ادمین

سیستم می باشد .

به منظور بروز رسانی یا package update روی server  های مختلف خصوصا server هایی

که امنیت آنها برای ما مهم باشد و نمی خواهیم بصورت مستقیم به اینترنت وصل و از طریق

repository های روی اینترنت ماشین هایمان را بروز رسانی کنیم

نیاز است که از یک روش امن تر استفاده نماییم .

بدین منظور غالبا یکی از روشها این است که یک server  را بعنوان مبدا در نظر گرفته و کلیه

package های مورد نیاز را پس از دانلود در محلی روی این server ذخیره کرده و سپس

آدرس این ماشین به همراه مسیری که packgeها در آن قرار دارد را در ماشین های دیگر قرار

می دهیم .

در این راستا نیاز به یکسری پیکربندی ها داریم

مثلا به منظور تبادل package ها بین ماشین ها نیاز به بستر شبکه داریم و نیاز به پروتکل

ارتباطی مثلا میتوانیم از پروتکل http و یا ftp استفاده نمایی.

در این مقاله با روش ftp  بصورت امن یا استفاده از پروتکل vsftp مبادرت به تبادل package

ها بین ماشین ها میکنیم .

برای این منظور نیاز داریم تا در ماشینی که بعنوان مبدا استفاده میکنیم در محلی کلیه

package ها را نصب کرده و در آن مسیر repository  بسازیم .

و همجنین نیاز داریم تا پورت ۲۰ و ۲۱  را به منظور برقراری ارتباط شبکه ای روی ماشین

مبدا یا server اصلی فعال کرده و سرویس vsftpd که سرویس امن ftp است را اجرا نماییم .

سپس در ماشینهایی که قرار است به این ماشین متصل شوند آدرس و مسیر repository  را وارد میکنیم .

و اما مراحل کار به صورت زیر میباشد :

فرض کنید ماشین مبدا از مدل CentOS 7  می باشد .

ابتدا کلیه packageهای روی cdrom  یا iso  فایل نصب سیستم عامل را تمام در مسیری در

این ماشین کپی میکنیم .

به منظور کپی کردن فایل های داخل iso فایل به روش زیر عمل میکنیم :

ابتدا بیاد داشته باشید برای ذخیره کلیه package ها ی iso file  و همچنین package های

update شده نیاز است دیسکی با فضای کافی در اختیار سیسم قرار دهیم .

مراحل کپی کردن و ایجاد repository در Repository Server

در مسیر   var/ftp/pub/ ابتدا کلیه package های مربوط به این مدل از سیستم عامل

یعنی مدل CentOS 7  را کپی میکنیم :

در اینجا در مسیر var/ftp/pub/  یک دایرکتوری بنام centos7/repo/  ساخته ایم

و کلیه Packageها را در آنجا کپی کرده ایم .

# cp Packages   /var/ftp/pub/centos7/repo

حالا دیتابیس repository را در این مسیر ایجاد می کنیم :

# cd /var/ftp/pub/centos7/repo

# createrepo  .

حالا سرویس vsftpd را روی ماشین Repository server فعال میکنیم :

# systemctl   start vsftpd

پورت ۲۰  و ۲۱ برای تبادل اطلاعات در حالت ftp را روی Repository Server فعال میکنیم :

# firewall-cmd  –add-port 20/tcp

# firewall-cmd  –add-port 21/tcp

پیکربندی Client ها به Repository Server

در مسیر  etc/yum.repos.d/ فایلی مثلا با نام base.repo ایجا کرده و بصورت زیر پیکر بندی میکنیم :

#  vi    /etc/yum.repos.d/base.repo

[base]
name=CentOS-$releasever – Base
baseurl=ftp://192.168.146.153/pub/centos7/repo
gpgcheck=0
enabled=1

در تعریف بالا قسمت baseurl آدرس ماشین و مسیری که package های ما در آن قرار داده شده نوشته

شده است چون پروتکل ما ftp  است بنابراین    //:ftp   یعنی می خواهیم با پروتکل ftp  متصل شویم و

بعد IP Address  یا نام Repository Server را وارد کرده و بعد مسیر مورد نظر را وارد می کنیم .

دقت کنید که در Repository Server کلیه package ها در مسیر    var/ftp/pub/centos7/repo/ قرار دارند اما در

آدرس دهی روی client ها قسمت var/ftp/  نوشته نشده و از pub/  به بعد آورده شده است .

این امر به این سبب است که در حالت ftp از آنجا که مسیر پیش فرض ftp در var/ftp/ قرار دارد از آوردن این بخش

در client خود داری میکنیم .

چنانچه بخواهید بچای IP Address مربوط به Repository Server از نام آن استفاده کنید

می بایست در فایل etc/hosts/ نام و IP ماشین را وارد کرده باشید یعنی

echo  “۱۹۲٫۱۶۸٫۱۴۶٫۱۵۳   centos7” >>  /etc/hosts

یادمان باشد که در صورت استفاده از local Repository باقی فایل های repo که در مسیبر etc/yum.repos.d/ قرار

دارد را در جای دیگری کپی کنید و مسیری غیر این فایل در لیست وجود نداشته باشد .

ابتدا برای اطمینان از اینکه بین این دو ماشین ارتباطات شبکه ای برقرار است با دستور ping بین client ها

و server تست میکنیم .

حالا کافی است از روی ماشین Client دستور yum repolist را اجرا کنیم تا ببینیم به درستی به Repository server

متصل میشود یا خیر

پس روی client دستور زیر را اجرا میکنیم :

# ping IP-Address-of-Repository-Server  

# ping 192.168.146.158

# yum repolist

حالا مثلا برای نصب package لازم از دستور زیر استفاده میکنیم :

مثلا فرض کنید می خواهیم opnessh را می خواهیم نصب کنیم و بصورت زیر میخواهیم کلیه package های مرتبط

با آن را نیز نصب نماییم،پس بصورت زیر عمل میکنیم :

# yum   install   openssh*

چنانچه مشکلی در برقراری ارتباط بین client و repository server وجود نداشته باشد عملیات نصب با موفقیت

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

نصب کنی یا خیر؟

در این مقاله نحوه نصب و یا حذف package های server هایی از نوع CentOS 7  را با استفاده از package های iso

نصب این سیستم عامل انجام دادیم اما چنانچه بخواهیم package های update را نیز داشته باشیم میتوانیم روی

Repository Server داخل دایرکتوری دیگری

مثلا بنام update  کلیه package های update را کپی کنیم و مثلا در مسیر

# /var/ftp/pub/centos7/repo/Packages

# /var/ftp/pub/centos7/repo/update

داشته باشیم که در فولدر Packages کلیه packageهای مربوط به iso  قرار داده شده و در فولدر update کلیه

package های update قرار دارد .

به منظور download کلیه package های سیستم از یک Repository  به این مقاله مراجعه کنید . 

 

1 پاسخ

دیدگاه خود را ثبت کنید

Want to join the discussion?
Feel free to contribute!

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *