במאמר הזה מוסבר איך להעתיק את המכונה הווירטואלית לפרויקט אחר.
לפני שמתחילים
- כדאי לעיין ב שיטות מומלצות ליצירת קובצי snapshot של דיסקים מתמידים ולהכין את דיסק האתחול ליצירת קובצי snapshot.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי 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.
דיסק אתחול אזורי
אם למכונה הווירטואלית יש דיסק אתחול אזורי, יוצרים קובץ 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: השם של אמצעי האחסון האזורי מסוג Persistent 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 של פרויקט היעד.