اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

تنظیم Local Repository با استفاده از apt-mirror در سیستم های Debian و Ubuntu

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    تنظیم Local Repository با استفاده از apt-mirror در سیستم های Debian و Ubuntu

    امروزه با توجه به ترافیک و سرعت پایین اینترنت و همچنین قطعی و وصلی اینترنت و .... علت اصلی تنظیم یک ریپازیتوری لوکال روی شبکه میباشد. یکی از علت ها را میتوان کاهش پهنای باند اینترنت و سرعت بالا روی دریافت پکیج ها از cache لوکال دانست. اما همچنین دلیل اصلی دیگر میتواند privacy باشد.

    فرض کنید که کلاینت ها از سازمان شما دسترسی محدود به اینترنت دارند اما لینوکس آنها نیاز به آپدیت روی نرم افزار و همچنین امنیت سیستم دارند یا اینکه تنها به پکیج های نرم افزاری جدید نیازمند هستند. برای توضیح بیشتر باید گفت که یکی سرور که روی یک شبکه private راه اندازی میشود شامل اطلاعات حساس و حتی سری میباشد و به همین دلیل دسترسی آن محدود است و نباید در معرض اینترنت public قرار بگیرد.


    آموزش راه اندازی ریپازیتوری لوکال در اوبونتو و دبیان






    اینها همه دلایل کمی هستند مبنی بر ایجاد یک local repository mirror روی شبکه شما و در حقیقت در نظر گرفتن یک سرور برای این امر و کانفیگ کردن کلاینت های داخلی به منظور استفاده از این سرور به عنوان cache mirror

    ubuntu پکیجی فراهم آورده به نام apt-mirror برای synchronize کردن local cache با repository ها و mirror های رسمی ubuntu که میتواند از طریق یک سرور http یا ftp کانفیگ شود و پکیج های نرم افزاریش را با کلاینت های سیستم لوکال به اشتراک بگذارد. برای یک mirror cache کامل سرور شما حداقل 120 گیگ فضای آزاد و رزرو تنها برای این repository local نیاز دارد.


    همچنین توصیه میشود مطالعه کنید :

    آموزش نصب و راه اندازی ریپازیتوری لوکال (تحت شبکه داخلی) برای نصب پکیج ها در CentOS



    تجهیزات مورد نیاز :
    • حداقل 120 گیگ فضای آزاد
    • سرور Proftpd که در مد enonymous نصب و کانفیگ شده باشد.


    مرحله 1

    تنظیم سرور :

    1 . اولین چیزی که شما بخواهید انجام دهید شناسایی سریع ترین و نزدیک ترین mirror های ubuntu در حقیقت نزدیک به مکان شما میباشد. صفحه Ubuntu Archive Mirror را در مرورگر خود باز کنید و کشور خود را انتخاب کنید :
    آموزش راه اندازی ریپازیتوری لوکال در اوبونتو






    اگر کشور شما mirror های بیشتری فراهم کرده شما باید ادرس mirror را شناسایی کنید و برای این منظور تست هایی براساس ping یا traceroute بگیرید :
    آموزش راه اندازی ریپازیتوری لوکال در ubuntu






    2 . مرحله بعدی نصب نرم افزار مورد نیاز برای تنظیم ریپازیتوری لوکال میباشد. apt-mirror و پکیج های proftpd را نصب کنید همچنین proftpd را به عنوان سیستم standalone کانفیگ کنید :
    کد PHP:
    sudo apt-get install apt-mirror proftpd-basic 
    آموزش راه اندازی ریپازیتوری لوکال در اوبونتو debian




    آموزش راه اندازی ریپازیتوری لوکال در دبیان





    3 . اکنون نوبت به کانفیگ سرور apt-mirror میباشد. فایل etc/apt/mirror.list/ را باز کنید و نزدیک ترین مکان تان را با توجه به مرحله اول به فایل اضافه کنید. و مسیر سیستم تان در حقیقت مکانی که پکیج ها باید دانلود شوند را انتخاب کنید به صورت پیش فرض apt-mirror مسیر var/spool/apt-mirror/ را برای local cache استفاده میکند اما در این آموزش ما قصد داریم مسیر سیستم را تغییر دهیم همچنین base_path را به گونه ای set کنیم که location آن opt/apt-mirror/ قرار بگیرد. (اگر mirror های پیش فرض به اندازه کافی سریع هستند و شما بیشتر از این نیاز ندارید میتوانید این مرحله را صرف نظر کنید)
    کد PHP:
    sudo nano /etc/apt/mirror.list 
    نحوه راه اندازی زیپازیتوری لوکال تحت شبکه در لینوکس





    همچنین شما میتوانید قبل از پاک کردن directive سورس لیست های دیگر را (شامل سورس های دبیان) uncomment یا اضافه کنید که بستگی به ورژن ubuntu کلاینت های شما دارد. شما میتوانید سورس ها را از 12.04 اضافه کنید اما دقت کنید که افزودن repository های بیشتر نیازمند فضای آزاد بیشتر میباشد.

    برای source list های debian از debian wiki یا debian sources که لیست ریپازیتوری generate میکنند بازدید کنید.


    4 . در این مرحله تمام چیزی که نیاز دارید تنها ایجاد دایرکتوری path و اجرای دستور apt-mirror برای synchronize کردن ریپازیتوری رسمی ubuntu با mirror لوکال مان میباشد :
    کد PHP:
    sudo mkdir -/opt/apt-mirror
    sudo apt-mirror 
    نحوه راه اندازی repository لوکال تحت شبکه





    همانطور که میبینید apt-mirror کار خود را با index و دانلود کردن archive ها ادامه میدهد در حالی که تعداد کلی پکیج های دانلود شده و همچنین سایزشان را ارایه میدهد و همانطور که میبینیم در حقیقت 110 تا 120 گیگ فضا به اندازه کافی زیاد هست که بتوان کل پکیج ها را دانلود کرد.

    شما میتوانید برای نمایش محتوای پوشه دستور ls را اجرا کنید :
    local repository debian and ubuntu





    به محض تمام شدن دانلود اولیه دانلود های بعدی کم خواهند بود.

    5 . هنگامی که apt-mirror پکیج ها را دانلود میکند شما میتوانید سرور proftpd خود را کانفیگ کنید. اولین چیزی که شما باید انجام دهید ایجاد فایل کانفیگ anonymous برای proftpd میباشد که با اجرای دستور زیر صورت میگیرد :
    کد PHP:
    sudo nano /etc/proftpd/conf.d/anonymous.conf 
    سپس محتوای زیر را به فایل anonymous.conf اضافه کنید و سرویس proftpd را restart کنید :
    کد PHP:

    <Anonymous ~ftp>
       
    User                    ftp
       Group                nogroup
       UserAlias         anonymous ftp
       RequireValidShell        off
    #   MaxClients                   10
       
    <Directory *>
         <
    Limit WRITE>
           
    DenyAll
         
    </Limit>
       </
    Directory>
     </
    Anonymous
    instalal and config local repository in debian and ubuntu






    6 . مرحله بعد link کردن مسیر apt-miror به مسیر ftpd با استفاده از دستور mount میباشد :
    کد PHP:
    sudo mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/  /srv/ftp
    نصب پکیج ها در دبیان با استفاده از ریپازیتوری لوکال





    برای بررسی اینکه دستور mount به درستی اجرا شده دستور زیر را بدون هیچ آپشن یا پارامتری اجرا میکنیم که لیست mount شده ها را به ما نمایش میدهد :
    کد PHP:
    mount 
    نصب پکیج ها در اوبونتو با استفاده از ریپازیتوری لوکال



    7 . در مرحله آخر باید مطمین شویم که سرور proftpd به صورت اتوماتیک بعد از reboot سیستم start شده همچنین دایرکتوری mirror cache به صورت اتوماتیک روی مسیر سرور ftp مانت (mount) شده است. برای فعال کردن اتوماتیک proftpd دستور زیر را اجرا کنید :
    کد PHP:
    sudo update-rc.d proftpd enable 
    برای mount کردن اتوماتیک apt-mirror cache روی proftpd فایل etc/rc.local/ را باز و edit نمایید :
    کد PHP:
    sudo nano /etc/rc.local 
    خط زیر را قبل از خط exit 0 اضافه کنید. همچنین 5 ثانیه تاخیر قبل از تلاش برای mount در نظر بگیرید که همانطور که در زیر میبینید با sleep 5 لحاظ شده است :
    کد PHP:
    sleep 5
    sudo mount 
    --bind  /opt/apt-mirror/mirror/archive.ubuntu.com/ /srv/ftp
    راه اندازی ریپازیتوری لوکال در ابونتو و دبیان






    اگر شما پکیج ها را از ریپازیتوری های دبیان دریافت کردید دستورات زیر را اجرا کنید و مطمین شوید تنظیمات درست برای فایل rc.local در بالا فعال شود :
    کد PHP:
    sudo mkdir /srv/ftp/debian
    sudo mount --bind /opt/apt-mirror/mirror/ftp.us.debian.org/debian/ /srv/ftp/debian
    راه اندازی ریپازیتوری لوکال در ابونتو و دبیان





    8 . برای انجام یک synchronization روزانه apt-mirror همچنین میتوانید با استفاده از دستور crontab یک job برنامه ریزی شده در سیستم ایجاد کنید که هر روز ساعت 2 AM اجرا شود. برای این منظور با ساختار زیر job خود را ایجاد نمایید :
    کد PHP:
    sudo crontab –e 
    راه اندازی ریپازیتوری لوکال در ابونتو و دبیان





    در آخر فایل خط زیر را اضافه نمایید :
    کد PHP:
    0  2  *  *  *  /usr/bin/apt-mirror >> /opt/apt-mirror/mirror/archive.ubuntu.com/ubuntu/apt-mirror.log 
    راه اندازی ریپازیتوری لوکال در ابونتو و دبیان





    اکنون هر روز ساعت 2 AM سیستم cache ریپازیتوری شما با mirror های ابونتو synchronization خواهد شد و یک log file ایجاد میشود.




    مرحله 2

    تنظیمات Client ها :

    9 . برای تنظیم کلاینت های لوکال سیستم عامل ابونتو فایل etc/apt/source.list/ را روی کامپیوتر کلاینت باز و ویرایش کنید و ip address و hostname سرور apt-mirror را در فایل قرار دهید همچنین پروتکل http با ftp جایگزین کنید سپس سیستم را آپدیت کنید :
    کد PHP:

    deb ftp
    ://192.168.1.13/ubuntu trusty universe
    deb ftp://192.168.1.13/ubuntu trusty main restricted
    deb ftp://192.168.1.13/ubuntu trusty-updates main restricted
    ## Ad so on…. 
    راه اندازی ریپازیتوری لوکال در ابونتو و دبیان






    10 . برای مشاهده ریپازیتوری ها شما میتوانید یک مرورگر را باز کنید و ip address دامین (domain) خود را با استفاده از پروتکل ftp باز کنید :
    راه اندازی ریپازیتوری لوکال در ابونتو و دبیان





    همچینین سیستم مشابهی برای کلاینت ها و سرورهای دبیان استفاده میشود و تنها تغییر مورد نیاز mirror دبیان و sources list آن میباشد.

    همچنین اگر شما یک دبیان یا ابونتو جدید نصب کردید زمانی که installer از شما ریپازیتوری مورد استفاده تان را میپرسد شما به صورت دستی local mirror خود را با استفاده از پروتکل ftp در آن قرار دهید.

    عالی ترین نکته درباره وجود locall mirror repository های شخصی خودتان این است که کلاینت های لوکال شما بدون نیاز به دسترسی به اینترنت به راحتی میتوانند پکیج ها یا نرم افزارهای خود را نصب یا آپدیت نمایند.

    موفق وباشید
    محمد هابیلی
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 02-08-2021, 10:03 PM.

    #2
    ممکنه در مورد Repository های yum هم آموزش بگذارید؟

    ممنون

    کامنت


      #3
      چشم دانیال جان :)

      کامنت

      درباره انجمن منطقه لینوکسی ها

      انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

      شبکه های اجتماعی
      در حال انجام ...
      X