הגדרת מאגרי מידע מקומיים עם 'apt-mirror' במערכות Ubuntu ו-Debian

כאשר התעבורה ומהירויות האינטרנט הפורשות נמדדות בעשרות גיגה בליץ של עין אפילו עבור לקוחות אינטרנט רגילים, תהייתם עשויה לשאול מהו הצורך בהגדרת מאגר מטמון מקומי ברשת ה-LAN שלך?

Setup Local Repositories in Ubuntu

אחד הסיבות היא להפחתת רוחב הפס של האינטרנט והמהירות הגבוהה בשליפת חבילות ממטמון מקומי. אך, גם סיבה ראשית נוספת צריכה להיות פרטיות. נניח שלקוחות מהארגון שלך מוגבלים באינטרנט, אך תיבות ה-Linux שלהם זקוקות לעדכוני מערכת רגילים בתוכנה ובאבטחה או פשוט זקוקות לחבילות תוכנה חדשות. כדי להמשיך לדמיין, שרת הפועל ברשת פרטית, מכיל ומשרת מידע רגיש סודי רק לקטע רשת מוגבל, ולעולם לא צריך להיחשף לרשת האינטרנט הציבורית.

אלה הן רק כמה מהסיבות למה עליך לבנות מראה מקומי ברשת ה-LAN שלך, להקצות שרת קצה לעבודה זו ולהגדיר ללקוחות הפנימיים לשלוף תוכנה ממראה המטמון שלו.

Ubuntu מספקת את חבילת apt-mirror לסנכרון מטמון מקומי עם מאגרי נתונים רשמיים של Ubuntu, מראה שניתן להגדיר דרך שרת HTTP או FTP לשתף את חבילות התוכנה שלו עם לקוחות המערכת המקומיים.

עבור מראה מלא עליך להקצות לשרת שלך לפחות 120G שטח פנוי שמור עבור מאגרי נתונים מקומיים.

דרישות

  1. מינימום 120G שטח פנוי
  2. שרת Proftpd מותקן ומוגדר במצב אנונימי.

שלב 1: הגדרת השרת

1. הדבר הראשון שעשוי לרצות לעשות הוא לזהות את המראות של Ubuntu הקרובים והמהירים ביותר למיקומך על ידי ביקור בדף Ubuntu Archive Mirror ובחירת המדינה שלך.

Ubuntu Archive Mirror

אם המדינה שלך מספקת יותר מראות, עליך לזהות את כתובת המראה ולבצע מבחנים בהתבסס על תוצאות ping או traceroute.

Select Mirror Location

2. השלב הבא הוא להתקין את התוכנה הנדרשת להקמת מאגר מראות מקומי. התקן את חבילות apt-mirror ו־proftpd והגדר את proftpd כשירות מערכת עצמאית.

$ sudo apt-get install apt-mirror proftpd-basic
Install apt-mirror Proftpd
ProFTPD Configuration

3. עכשיו הגיע הזמן להגדיר את שרת apt-mirror. פתח וערוך את קובץ /etc/apt/mirror.list על ידי הוספת המיקומים הקרובים ביותר שלך (שלב 1) – אופציונלי, אם המראות הברירת מחדל מהירים מספיק או אם אין לך דחיפות – ובחירת נתיב המערכת שבו יש להוריד את החבילות. כברירת מחדל, apt-mirror משתמש בנתיב /var/spool/apt-mirror למטמון מקומי אך במדריך זה אנו הולכים להשתמש בשינוי נתיב המערכת ולהפנות את ההוראה set base_path לנתיב /opt/apt-mirror.

$ sudo nano /etc/apt/mirror.list
Configure apt-mirror Server.

כמו כן, תוכל לבטל את ההערה או להוסיף רשימת מקורות אחרות לפני ההוראה לניקוי – כולל מקורות Debian – בהתאם לגרסאות Ubuntu שהלקוחות שלך משתמשים בהן. תוכל להוסיף מקורות מ־12.04, אם תרצה אך עליך לקחת בחשבון שהוספת מקורות נוספים מחייבת יותר מקום פנוי.

דביאן רשימות מקור בקרוא באתר ויקי דביאן או במחולל רשימות מקורות דביאן.

4. כל מה שצריך לעשות כעת הוא, פשוט ליצור תיקיית נתיב ולהפעיל את הפקודה apt-mirror כדי לסנכרן את המאגרים הרשמיים של אובונטו עם המראה המקומי שלנו.

$ sudo mkdir -p /opt/apt-mirror
$ sudo apt-mirror
Create apt-mirror Paths

כפי שניתן לראות, apt-mirror ממשיך עם אינדקסציה והורדת ארכיונים ומציג את מספר החבילות שהורדו ואת גודלן. כפי שניתן לדמיין, 110-120 ג'יגה-בייט הוא מספיק גדול כדי לקחת זמן להורדה.

ניתן להפעיל את הפקודה ls כדי להציג את תוכן התיקייה.

Verify apt-mirror Paths

לאחר שההורדה הראשונית הושלמה, ההורדות העתידיות יהיו קטנות.

5. בזמן ש-apt-mirror מוריד חבילות, ניתן להגדיר את שרת ה-Proftpd שלך. הדבר הראשון שצריך לעשות הוא ליצור קובץ הגדרת אנונימיות עבור proftpd על ידי הרצת הפקודה הבאה.

$ sudo nano /etc/proftpd/conf.d/anonymous.conf

לאחר מכן יש להוסיף את התוכן הבא לקובץ anonymous.conf ולאתחל את שירות proftpd מחדש.

<Anonymous ~ftp>
   User                    ftp
   Group                nogroup
   UserAlias         anonymous ftp
   RequireValidShell        off
#   MaxClients                   10
   <Directory *>
     <Limit WRITE>
       DenyAll
     </Limit>
   </Directory>
 </Anonymous>
Configure ProFTPD

6. השלב הבא הוא לקשר את נתיב ה-apt-mirror לנתיב של proftpd על ידי הרצת bind mount באמצעות הפקודה הבאה.

$ sudo mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/  /srv/ftp/
Mount apt-mirror to ProFTP Path

כדי לאמת זאת, יש להריץ את הפקודה mount ללא פרמטר או אפשרות.

$ mount
Verify Paths

7. השלב האחרון הוא לוודא ששרת Proftpd מופעל אוטומטית לאחר הפעלת המערכת וכי התיקיית mirror-cache ממונטת באופן אוטומטי על נתיב השרת ftp. כדי להפעיל באופן אוטומטי את proftpd, הריצו את הפקודה הבאה.

$ sudo update-rc.d proftpd enable

כדי להרכיב באופן אוטומטי את המטמון של apt-mirror על proftpd, פתחו וערכו את הקובץ /etc/rc.local.

$ sudo nano /etc/rc.local

הוסיפו את השורה הבאה לפני ההוראה exit 0. כמו כן, השתמשו בהשהייה של 5 שניות לפני ניסיון ההרכבה.

sleep 5
sudo mount --bind  /opt/apt-mirror/mirror/archive.ubuntu.com/ /srv/ftp/
Auto Mount Apt Mirrors

אם אתם מושכים חבילות ממאגרי Debian, הריצו את הפקודות הבאות ווודאו שהגדרות המתאימות לקובץ rc.local מעלה מופעלות.

$ sudo mkdir /srv/ftp/debian
$ sudo mount --bind /opt/apt-mirror/mirror/ftp.us.debian.org/debian/ /srv/ftp/debian/
Debian Repository Setup

8. לסנכרון יומי של apt-mirror ניתן גם ליצור משימת תזמון במערכת להפעלה בשעה 2 בלילה בכל יום. הריצו את הפקודה crontab, בחרו את העורך המועדף עליכם והוסיפו את השורה הבאה.

$ sudo crontab –e
Daily apt-mirror Synchronization

בשורה האחרונה הוסיפו את השורה הבאה.

0  2  *  *  *  /usr/bin/apt-mirror >> /opt/apt-mirror/mirror/archive.ubuntu.com/ubuntu/apt-mirror.log
Add Cron Entry for Synchronization

כעת, בכל יום בשעה 2 בלילה, מטמון המאגר של המערכת תסנכרן עם מראות הרשמיים של Ubuntu ותיווצר קובץ לוג.

שלב 2: הגדרת לקוחות

9. כדי להגדיר לקוחות Ubuntu מקומיים, ערכו את הקובץ /etc/apt/source.list במחשבי הלקוח כך שיפנה לכתובת ה-IP או שם המארח של שרת apt-mirror – החליפו את הפרוטוקול http ב-ftp, ועדכנו את המערכת.

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….
Configure Clients

10. כדי להציג את המאגרים, ניתן לפתוח דפדפן ולפנות לכתובת ה-IP של השרת או שם התחום באמצעות פרוטוקול FTP.

View Local Repositories

הוראות אלה חלות גם על לקוחות ושרתים של דביאן, השינוי היחיד הנדרש הוא מראה דביאן ורשימת מקורות.

גם אם אתם מתקינים מערכת אובונטו או דביאן חדשה, הזינו באופן ידני את המראה המקומית שלכם באמצעות פרוטוקול FTP כאשר המתקין שואל אילו מאגר להשתמש.

הדבר הנפלא שברשותכם מאגרי מראה מקומיים הוא שאתם תמיד מעודכנים, והמכשירים המקומיים שלכם אינם צריכים להתחבר לאינטרנט על מנת להתקין עדכונים או תוכנה.

Source:
https://www.tecmint.com/setup-local-repositories-in-ubuntu/