במאמר הזה מוסבר איך להעתיק את המכונה הווירטואלית לפרויקט אחר.
לפני שמתחילים
- כדאי לעיין במאמר שיטות מומלצות לשימוש ב-snapshots של דיסקים מתמידים ולהכין את דיסק האתחול לשימוש ב-snapshots.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
-
התקינו את ה-CLI של Google Cloud. אחר כך, מאתחלים את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
- הגדרת אזור ותחום כברירת מחדל
-
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להעתקת מכונה וירטואלית בין פרויקטים, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין מכונות של Compute (v1) (roles/compute.instanceAdmin.v1) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות להעתקת מכונה וירטואלית בין פרויקטים. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להעתיק מכונה וירטואלית בין פרויקטים, נדרשות ההרשאות הבאות:
-
compute.instances.createבפרויקט -
כדי להשתמש באימג' בהתאמה אישית ליצירת המכונה הווירטואלית (VM):
compute.images.useReadOnlyבקובץ אימג' -
כדי להשתמש ב-snapshot ליצירת המכונה הווירטואלית:
compute.snapshots.useReadOnlyבקובץ snapshot -
כדי להשתמש בתבנית של הגדרות מכונה ליצירת המכונה הווירטואלית:
compute.instanceTemplates.useReadOnlyבתבנית של הגדרות המכונה -
כדי לציין רשת משנה למכונה הווירטואלית:
compute.subnetworks.useבפרויקט או ברשת המשנה שנבחרה -
כדי לציין כתובת IP סטטית למכונה הווירטואלית:
compute.addresses.useבפרויקט -
כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת VPC:
compute.subnetworks.useExternalIpבפרויקט או ברשת המשנה שנבחרה -
כדי להקצות רשת מדור קודם למכונה הווירטואלית:
compute.networks.useבפרויקט -
כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת מדור קודם:
compute.networks.useExternalIpבפרויקט -
כדי להגדיר מטא-נתונים של המכונה הווירטואלית:
compute.instances.setMetadataבפרויקט -
כדי להגדיר תגים למכונה הווירטואלית:
compute.instances.setTagsבמכונה הווירטואלית -
כדי להגדיר תוויות למכונה הווירטואלית:
compute.instances.setLabelsבמכונה הווירטואלית -
כדי להגדיר חשבון שירות לשימוש של המכונה הווירטואלית:
compute.instances.setServiceAccountבמכונה הווירטואלית -
כדי ליצור דיסק חדש למכונה הווירטואלית:
compute.disks.createבפרויקט -
כדי לצרף דיסק קיים במצב קריאה-בלבד או במצב קריאה וכתיבה:
compute.disks.useבדיסק -
כדי לצרף דיסק קיים במצב קריאה-בלבד:
compute.disks.useReadOnlyבדיסק
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
העתקת מכונה וירטואלית לפרויקט אחר
בפרויקט המקור, יוצרים snapshot של דיסק האתחול של ה-VM באמצעות אחת מהפקודות הבאות:
דיסק אתחול אזורי
אם ל-VM יש דיסק אתחול אזורי, יוצרים snapshot באמצעות הפקודה הבאה:
gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk SOURCE_DISK \ --snapshot-type SNAPSHOT_TYPE \ --source-disk-zone SOURCE_DISK_ZONEמחליפים את מה שכתוב בשדות הבאים:
- SNAPSHOT_NAME: שם לקובץ ה-snapshot.
- SOURCE_DISK: השם של נפח האחסון המתמיד (persistent disk) האזורי שממנו רוצים ליצור snapshot.
- SNAPSHOT_TYPE: סוג ה-snapshot, STANDARD או ARCHIVE. אם לא מציינים סוג תמונת מצב, נוצרת תמונת מצב STANDARD. כדי לשמור נתונים בצורה חסכונית יותר, בוחרים באפשרות 'ארכיון'.
- SOURCE_DISK_ZONE: התחום של נפח הדיסק לאחסון מתמיד (persistent disk) שרוצים ליצור ממנו snapshot.
דיסק אתחול אזורי
אם ל-VM יש דיסק אתחול אזורי, יוצרים snapshot באמצעות הפקודה הבאה:
gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk SOURCE_DISK \ --source-disk-region=SOURCE_DISK_REGION \ --snapshot-type=SNAPSHOT_TYPEמחליפים את מה שכתוב בשדות הבאים:
- SNAPSHOT_NAME: שם לקובץ ה-snapshot.
- SOURCE_DISK: השם של אמצעי האחסון של הדיסק האזורי לאחסון מתמיד שממנו רוצים ליצור snapshot.
- SOURCE_DISK_REGION: האזור של נפח ה-Persistent Disk האזורי שממנו רוצים ליצור snapshot.
- SNAPSHOT_TYPE: סוג ה-snapshot, STANDARD או ARCHIVE. אם לא מציינים סוג תמונת מצב, נוצרת תמונת מצב STANDARD.
יוצרים אימג' בהתאמה אישית מהתמונה באמצעות הפקודה הבאה:
gcloud compute images create IMAGE_NAME \ --source-snapshot=SOURCE_SNAPSHOT \ [--storage-location=LOCATION]מחליפים את מה שכתוב בשדות הבאים:
IMAGE_NAME: שם לתמונה החדשה-
SOURCE_SNAPSHOT: קובץ ה-snapshot שממנו רוצים ליצור את התמונה -
LOCATION: אופציונלי: דגל שמאפשר לכם לציין את האזור או את מספר האזורים שבהם התמונה מאוחסנת. לדוגמה, אפשר לצייןusכדי לאחסן את התמונה במספר אזוריםus, או לצייןus-central1כדי לאחסן אותה באזורus-central1. אם לא בוחרים אזור, Compute Engine מאחסן את התמונה באזור הרב-אזורי הקרוב ביותר למיקום המקור של התמונה.
אופציונלי: משתפים את האימג' בהתאמה אישית עם משתמשים שיוצרים מכונות וירטואליות בפרויקט היעד. מידע נוסף על שיתוף תמונות בהתאמה אישית זמין במאמר בנושא שיתוף תמונות בהתאמה אישית בארגון.
בפרויקט היעד, יוצרים מכונה וירטואלית מהאימג' בהתאמה אישית באמצעות הפקודה הבאה:
gcloud compute instances create VM_NAME \ --image-project IMAGE_PROJECT \ IMAGE_FLAG \ --subnet SUBNET \ --zone ZONEמחליפים את מה שכתוב בשדות הבאים:
-
VM_NAME: השם של ה-VM -
IMAGE_PROJECT: המזהה של Google Cloud הפרויקט שמכיל את התמונה -
IMAGE_FLAG: מציינים אחת מהאפשרויות הבאות:- משתמשים בדגל
--image IMAGE_NAMEכדי לציין תמונה בהתאמה אישית.לדוגמה,
--image my-debian-image-v2. - אם יצרתם את התמונות המותאמות אישית כחלק ממשפחת תמונות מותאמות אישית, צריך להשתמש בדגל
--image-family IMAGE_FAMILY_NAMEכדי לציין את משפחת התמונות המותאמות אישית.הפעולה הזו יוצרת את המכונה הווירטואלית מהתמונה העדכנית ביותר של מערכת ההפעלה ומהגרסה העדכנית ביותר של מערכת ההפעלה במשפחת התמונות המותאמות אישית. לדוגמה, אם מציינים
--image-family my-debian-family, Compute Engine יוצר מכונה וירטואלית מתמונת מערכת ההפעלה העדכנית ביותר במשפחת התמונות המותאמת אישיתmy-debian-family.
- משתמשים בדגל
SUBNET: אם רשת המשנה והמופע נמצאים באותו פרויקט, מחליפים אתSUBNETבשם של רשת משנה שנמצאת באותו אזור כמו המופע.כדי לציין רשת משנה ברשת VPC משותפת, מחליפים את הערך בשדה
SUBNETבמחרוזת מהצורה:projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
HOST_PROJECT_ID: מזהה הפרויקט של הפרויקט המארח ב-VPC משותף -
REGION: האזור של רשת המשנה -
SUBNET_NAME: השם של רשת המשנה
האזור של תת-הרשת ברשת VPC משותפת צריך להיות זהה לאזור שבו נמצאת המכונה.
-
-
ZONE: האזור של המכונה הווירטואלית
-
המאמרים הבאים
- התאמה אישית של רשת ה-VPC של פרויקט היעד.