הגדרת מכונות וירטואליות (VM) לחיבור למאגר Apt ב-Artifact Registry מאפשרת לכם להתקין ולעדכן חבילות Debian באמצעות כלי Apt רגילים. אתם יכולים להגדיר אימות ומקורות מאגרים למכונות וירטואליות ב-Compute Engine כדי למשוך חבילות ממאגרים פרטיים או ציבוריים.
לפני שמתחילים
אם מאגר ה-Apt של היעד לא קיים, יוצרים מאגר רגיל או מרוחק. אתם יכולים ליצור מאגר פרטי או מאגר ציבורי שלא דורש אימות.הכנת מכונה וירטואלית לגישה למאגר Apt
מאגר פרטי
בוחרים את חשבון השירות שבו רוצים להשתמש כדי להעניק גישה.
- במכונות וירטואליות של Compute Engine, זה יכול להיות חשבון השירות שמוגדר כברירת מחדל. Artifact Registry מאחזר באופן אוטומטי את פרטי הכניסה לחשבון של חשבון השירות של מכונת VM ב-Compute Engine לכל מכונה וירטואלית שמשתמשת בחשבון שירות.
- לגבי מכונות וירטואליות אחרות, יוצרים או בוחרים חשבון שירות שיפעל בשם המכונה הווירטואלית. כדי להגדיר את המכונה הווירטואלית, תצטרכו את המיקום של קובץ המפתח של חשבון השירות. בדף חשבונות שירות אפשר לראות את המפתחות של חשבונות קיימים וליצור מפתחות חדשים.
נותנים הרשאות גישה למאגר לחשבון השירות.
מכינים את המכונה הווירטואלית (VM) לגישה למאגר.
מכונה וירטואלית ב-Compute Engine
מכונה וירטואלית של Debian
מקצים
cloud-platformהיקפי גישה ל-API למכונה הווירטואלית. מידע על הגדרת היקפי גישה זמין במאמר שינוי חשבון השירות והיקפי הגישה של מופע.מעדכנים את Apt באמצעות הפקודה הבאה:
sudo apt updateמתקינים את חבילת
apt-transport-artifact-registryבמכונה הווירטואלית:sudo apt install apt-transport-artifact-registry
מכונה וירטואלית של Ubuntu
מתקינים את מפתחות החתימה של מאגר 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במיקום האזורי או במספר אזורים של המאגר.מקצים
cloud-platformהיקפי גישה ל-API למכונה הווירטואלית. מידע על הגדרת היקפי גישה זמין במאמר שינוי חשבון השירות והיקפי הגישה של מופע.מגדירים את ה-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מעדכנים את Apt באמצעות הפקודה הבאה:
sudo apt updateמתקינים את חבילת
apt-transport-artifact-registryבמכונה הווירטואלית:sudo apt install apt-transport-artifact-registry
מכונה וירטואלית אחרת
מתקינים את מפתחות החתימה של מאגר 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במיקום האזורי או במספר אזורים של המאגר.מגדירים את ה-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מעדכנים את Apt באמצעות הפקודה הבאה:
sudo apt updateמתקינים את חבילת
apt-transport-artifact-registryבמכונה הווירטואלית:sudo apt install apt-transport-artifact-registryמחפשים את השורה
#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 של מפתח חשבון השירות.
מאגר ציבורי
הגדרת גישה ציבורית למאגר.
אם אתם מגדירים מכונה וירטואלית מחוץ ל- Google Cloud, אתם צריכים להכין את המחשב לגישה למאגר. אם אתם מגדירים מכונה וירטואלית ב-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במיקום האזורי או במספר אזורים של המאגר.מעדכנים את Apt באמצעות הפקודה הבאה:
sudo apt update
הגדרת גישה של מכונה וירטואלית למאגר Apt רגיל
הגדרת מכונה וירטואלית לגישה למאגר Apt:
מריצים את הפקודה
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
-
מגדירים את Apt לאחזר חבילות מהמאגר באמצעות הפקודה
echoמהפלט של הפקודהprint-settings.לדוגמה, כדי להתקין חבילות מהמאגר הציבורי
my-repoבפרויקטmy-projectובמיקוםus-west1, משתמשים בפקודה הבאה:echo 'deb ar+https://us-west1-apt.pkg.dev/projects/my-project my-repo main'
מעדכנים את מקורות המאגר באמצעות הפקודה הבאה:
sudo apt update
עכשיו אפשר לחבר את Apt למאגר.
אם יוצרים עוד מאגרי Apt, אפשר להוסיף אותם לקובץ artifact-registry.list ואז להריץ מחדש את הפקודה sudo apt update כדי לעדכן את מקורות המאגר.
הגדרת מכונה וירטואלית לגישה למאגר Apt מרוחק
כדי להגדיר מכונה וירטואלית כך שתשתמש רק במאגר Apt מרוחק במקום במאגר Apt רגיל במעלה הזרם, מחליפים את המאגר הרגיל במאגר המרוחק בקובץ /etc/apt/sources.list של המכונה הוירטואלית.
נותנים הרשאות כתיבה ב-Artifact Registry ברמת הפרויקט לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/artifactregistry.writerנכנסים לדף של המכונות הווירטואליות.
בשורה עם המכונה הווירטואלית, לוחצים על SSH.
ייפתח חלון חדש עם סשן טרמינל במכונה הווירטואלית.
פותחים את הקובץ
/etc/apt/sources.listשל המכונה הווירטואלית ומאתרים את המאגר הרגיל שרוצים להחליף במאגר המרוחק החדש.מוחקים את השורה של המאגר הרגיל ומחליפים אותה בשורה הבאה:
deb ar+https://LOCATION-apt.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME UPSTREAM_REPOSITORY_NAME COMPONENTSמחליפים את מה שכתוב בשדות הבאים:
-
LOCATIONעם המיקום האזורי או המיקום במספר אזורים של המאגר המרוחק. -
PROJECT_IDבמזהה הפרויקט של מכונת ה-VM. REMOTE_REPOSITORY_NAMEבשם שנתתם למאגר המרוחק.-
UPSTREAM_REPOSITORY_NAMEבשם של מאגר המקור של השלט הרחוק. -
COMPONENTSעם רשימה של שמות רכיבים שמופרדים ברווחים.
לדוגמה, ההגדרה הבאה קובעת שהמכונה הווירטואלית תאחזר חבילות מהמאגר
my-repoבפרויקטmy-projectבמיקוםus-east1באמצעותstableכמאגר במעלה הזרם לרכיביםmain,contribו-non-free.deb ar+https://us-east1-apt.pkg.dev/remote/my-project/my-repo stable main contrib non-free-
מעדכנים את מקורות המאגר באמצעות הפקודה הבאה:
sudo apt updateעכשיו אפשר לחבר את Apt למאגר.
שימוש במאגר Apt מרוחק כגיבוי
אם רוצים להשאיר את ה-upstream הרגיל כאפשרות הראשונה ולהוסיף את המאגר המרוחק כאפשרות חלופית, אפשר להשאיר את ה-upstream הרגיל בקובץ sources.list, ולהוסיף את המאגר המרוחק לסוף הקובץ sources.list, או ליצור רשימה חדשה בתיקייה sources.list.d.
כדי ליצור קובץ artifact-registry.list חדש בתיקייה sources.list.d, מריצים את הפקודה הבאה:
echo 'deb ar+https://LOCATION-apt.pkg.dev/remote/PROJECT_ID/REMOTE_REPOSITORY_NAME UPSTREAM_REPOSITORY_NAME COMPONENTS' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
מחליפים את מה שכתוב בשדות הבאים:
-
LOCATIONהוא המיקום האזורי או המיקום במספר אזורים של המאגר. -
PROJECT_IDבמזהה הפרויקט של מכונת ה-VM. REMOTE_REPOSITORY_NAMEבשם שנתתם למאגר המרוחק.-
UPSTREAM_REPOSITORY_NAMEבשם המאגר במעלה הזרם של השלט הרחוק. -
COMPONENTSברשימה מופרדת ברווחים של שמות רכיבים.
אם יוצרים מאגרי Apt נוספים, אפשר להוסיף אותם לקובץ artifact-registry.list או sources.list ואז להריץ מחדש את הפקודה sudo apt update כדי לעדכן את מקורות המאגר.
הגדרת גישת HTTP למאגר Apt
אם משתמשים בכלי לקוח ישנים שלא תומכים בהצפנת SSL, אפשר להגדיר גישה ציבורית למאגר Apt ולגשת אליו באמצעות HTTP. בקשות שנשלחות למאגרי מידע ציבוריים לקריאה באמצעות HTTP יידחו אם יוצג אסימון אימות עם הבקשה.
הגדרת גישה ציבורית למאגר.
כדי להגדיר את 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ובמיקוםus-west1באמצעות HTTP, משתמשים בפקודה הבאה:echo 'deb http://us-west1-apt.pkg.dev/projects/my-project my-repo main' | sudo tee -a /etc/apt/sources.list.d/artifact-registry.list
-
מעדכנים את מקורות המאגר באמצעות הפקודה הבאה:
sudo apt update
עכשיו אפשר לחבר את Apt למאגר.
אם יוצרים עוד מאגרי Apt, אפשר להוסיף אותם לקובץ artifact-registry.list ואז להריץ מחדש את הפקודה sudo apt update כדי לעדכן את מקורות המאגר.