הגדרת מכונות וירטואליות להתקנת חבילות Debian

מאגרי Apt ב-Artifact Registry מאפשרים לכם לקבוע אילו גרסאות של חבילות Debian יותקנו במכונות הווירטואליות (VMs). אתם יכולים להגדיר מכונות של Compute Engine או מכונות וירטואליות חיצוניות כדי להתקין חבילות ממאגרים פרטיים או ציבוריים.

לפני שמתחילים

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

הכנת מכונה וירטואלית לגישה למאגר Apt

מאגר פרטי

  1. בוחרים את חשבון השירות שבו תשתמשו כדי לתת גישה.

    • במכונות וירטואליות של Compute Engine, יכול להיות שזה יהיה חשבון השירות שמוגדר כברירת מחדל. ‫Artifact Registry מאחזר באופן אוטומטי את פרטי הכניסה לחשבון השירות של מכונת ה-VM ב-Compute Engine לכל מכונת VM שמשתמשת בחשבון שירות.
    • במכונות וירטואליות אחרות, יוצרים או בוחרים חשבון שירות שיפעל בשם המכונה הווירטואלית. כדי להגדיר את המכונה הווירטואלית, תצטרכו את המיקום של קובץ המפתח של חשבון השירות. בדף Service Accounts אפשר לראות את המפתחות של החשבונות הקיימים וליצור מפתחות חדשים.
  2. נותנים לחשבון השירות הרשאות גישה למאגר.

  3. מכינים את ה-VM לגישה למאגר.

    מכונה וירטואלית ב-Compute Engine

    ‫VM של Debian

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

    2. מעדכנים את Apt באמצעות הפקודה הבאה:

      sudo apt update
      
    3. מתקינים את החבילה apt-transport-artifact-registry ב-VM:

      sudo apt install apt-transport-artifact-registry
      

    מכונה וירטואלית של Ubuntu

    1. מתקינים את מפתחות החתימה של מאגר Apt באמצעות הפקודה הבאה:

      curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/artifact-registry.gpg && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/google-cloud-sdk.gpg
      

      מחליפים את LOCATION במיקום האזורי של המאגר.

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

    3. מגדירים את ה-VM כך שתהיה לו גישה לחבילות של Artifact Registry באמצעות הפקודה הבאה:

      echo 'deb http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
      
    4. מעדכנים את Apt באמצעות הפקודה הבאה:

      sudo apt update
      
    5. מתקינים את החבילה apt-transport-artifact-registry ב-VM:

      sudo apt install apt-transport-artifact-registry
      

    מכונה וירטואלית אחרת

    1. מתקינים את מפתחות החתימה של מאגר Apt באמצעות הפקודה הבאה:

      curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/artifact-registry.gpg && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/google-cloud-sdk.gpg
      

      מחליפים את LOCATION במיקום האזורי של המאגר.

    2. מגדירים את ה-VM כך שתהיה לו גישה לחבילות של Artifact Registry באמצעות הפקודה הבאה:

      echo 'deb http://packages.cloud.google.com/apt apt-transport-artifact-registry-stable main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
      
    3. מעדכנים את Apt באמצעות הפקודה הבאה:

      sudo apt update
      
    4. מתקינים את החבילה apt-transport-artifact-registry ב-VM:

      sudo apt install apt-transport-artifact-registry
      
    5. מוצאים את השורה #Service-Account-JSON "/path/to/creds.json"; בקובץ /etc/apt/apt.conf.d/90artifact-registry, מבטלים את הסימון שלה כהערה ומוסיפים את הנתיב של המפתח של חשבון השירות.

      רשומה בקובץ התצורה:

      Service-Account-JSON  "PATH_TO_SERVICE_ACCOUNT_KEY";
      

      מחליפים את PATH_TO_SERVICE_ACCOUNT_KEY בנתיב לקובץ ה-JSON של מפתח חשבון השירות.

מאגר ציבורי

  1. מגדירים גישה ציבורית למאגר.

  2. אם אתם מגדירים מכונה וירטואלית מחוץ ל- Cloud de Confiance, הכינו את המכונה לגישה למאגר. אם אתם מגדירים מכונה וירטואלית של Compute Engine, המשיכו לשלב הבא.

    מתקינים את מפתח האימות הציבורי של החתימה באמצעות הפקודה הבאה:

    curl https://LOCATION-apt.pkg.dev/doc/repo-signing-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/artifact-registry.gpg
    

    מחליפים את LOCATION במיקום האזורי של המאגר.

  3. מעדכנים את Apt באמצעות הפקודה הבאה:

    sudo apt update
    

הגדרת VM לגישה למאגר Apt רגיל

הגדרת מכונה וירטואלית כדי לגשת למאגר Apt:

  1. מריצים את הפקודה gcloud beta artifacts print-settings apt כדי ליצור את פקודת ההגדרה של המכונה הווירטואלית:

    gcloud beta artifacts print-settings apt \
        --repository=REPOSITORY \
        --location=LOCATION
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ LOCATION הוא המיקום האזורי של המאגר.
    • ‫REPOSITORY הוא השם של מאגר Artifact Registry.

    הפלט אמור להיראות כך:

    # To configure your package manager with this repository:
    
    # Update Apt:
    sudo apt update
    
    # Install the Apt credential helper:
    sudo apt install apt-transport-artifact-registry
    
    # Configure your VM to access Artifact Registry packages using the following
    # command:
    
    echo "deb [signed-by=/etc/apt/trusted.gpg.d/artifact-registry.gpg] ar+https://LOCATION-apt.pkg.dev/projects/PROJECT REPOSITORY main" | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
    # Update Apt:
    sudo apt update
    
  2. מגדירים את Apt לאחזור חבילות מהמאגר באמצעות הפקודה echo מהפלט של הפקודה print-settings.

    לדוגמה, כדי להתקין חבילות מהמאגר הציבורי my-repo בפרויקט my-project ובמיקום u-france-east1, משתמשים בפקודה הבאה:

    echo 'deb ar+https://u-france-east1-apt.pkg.dev/projects/my-project my-repo main'
    
  3. מעדכנים את מקורות המאגר באמצעות הפקודה הבאה:

    sudo apt update
    

עכשיו Apt יכול להתחבר למאגר.

אם אתם יוצרים מאגרי Apt נוספים, אתם יכולים להוסיף אותם לקובץ artifact-registry.list ואז להריץ מחדש את sudo apt update כדי לעדכן את מקורות המאגר.

הגדרת גישת HTTP למאגר Apt

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

  1. מגדירים גישה ציבורית למאגר.

  2. כדי להגדיר ל-Apt לאחזר חבילות מהמאגר באמצעות HTTP, מריצים את הפקודה הבאה:

     echo 'deb http://LOCATION-apt.pkg.dev/projects/PROJECT_ID \
     REPOSITORY main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ LOCATION הוא המיקום האזורי של המאגר.
    • ‫PROJECT_ID הוא מזהה הפרויקט של המאגר.
    • ‫REPOSITORY הוא שם המאגר.

    לדוגמה, כדי להתקין חבילות מהמאגר הציבורי my-repo בפרויקט my-project ובמיקום u-france-east1 באמצעות HTTP, משתמשים בפקודה הבאה:

    echo 'deb http://u-france-east1-apt.pkg.dev/projects/my-project my-repo main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
    
  3. מעדכנים את מקורות המאגר באמצעות הפקודה הבאה:

    sudo apt update
    

עכשיו Apt יכול להתחבר למאגר.

אם אתם יוצרים מאגרי Apt נוספים, אתם יכולים להוסיף אותם לקובץ artifact-registry.list ואז להריץ מחדש את sudo apt update כדי לעדכן את מקורות המאגר.

המאמרים הבאים