יצירת מכונות Compute Engine מתמונות של מכונות

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

תמונת מכונה מכילה את רוב המידע והנתונים שנדרשים לשכפול מופע.

אי אפשר לשנות תמונת מכונה. עם זאת, אפשר לבטל כמעט את כל המאפיינים של קובץ האימג' של המכונה כשיוצרים מופע מקובץ האימג' של המכונה.

אפשר ליצור מכונות מתמונות מכונה באמצעות Cloud de Confiance המסוף, Google Cloud CLI או REST.

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

  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:

    צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    המסוף

    כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS

    gcloud

    1. התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init
  • הגדרת אזור ותחום כברירת מחדל
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .

התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות ליצירת מכונות של Compute Engine מתמונות מכונה, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין מכונות של Compute ‏ (v1) (roles/compute.instanceAdmin.v1) במכונת Compute או בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

הגבלות

ההגבלות הבאות חלות כשיוצרים מכונות מתמונות מכונה:

  • אפשר ליצור לכל היותר 6 מופעים מקובץ אימג' של מכונת מקור ב-60 דקות. אם חורגים מהמגבלה הזו, פעולת יצירת המופע נכשלת ומוחזרת שגיאה שדומה לזו:

    Operation rate exceeded for resource 'projects/test/global/machineImages/machine-image-1'.
    Too frequent operations from the source resource.
    

    כדי ליצור יותר מכונות מהמגבלה שמוגדרת (6 מכונות ב-60 דקות), צריך ליצור קובצי אימג' נוספים של מכונות מהמכונה המקורית, או ליצור קובצי אימג' של מכונות לזמן קצר מהמכונות החדשות. לאחר מכן תוכלו ליצור את מספר המכונות הנדרש מקובצי האימג' החדשים של המכונות.

  • אם משתמשים ב-CLI של gcloud או ב-REST כדי ליצור מכונה מתמונת מכונה עם דיסקים מוצפנים באמצעות CMEK, הדיסקים במכונה החדשה מוצפנים באמצעות הצפנה שמוגדרת כברירת מחדל, אלא אם מציינים את מפתחות ה-CMEK. אם משתמשים במסוף Cloud de Confiance , ההצפנה באמצעות CMEK מועברת באופן אוטומטי.

  • אי אפשר ליצור מכונות מתוך תמונות מכונה עם דיסקים אזוריים מצורפים באמצעות מסוף Cloud de Confiance . משתמשים ב-Google Cloud CLI או ב-REST ומציינים את הפרמטרים replicaZones ו-deviceName לכל דיסק אזורי שמצורף. מידע נוסף זמין במאמר יצירת מכונה מקובץ אימג' של מכונה עם שינויים בהגדרות.

יצירת מכונה מקובץ אימג' של מכונה (ללא שינוי ברירת המחדל)

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

המסוף

  1. נכנסים לדף Create an instance במסוף Cloud de Confiance .

    כניסה לדף Create an instance

  2. בתפריט Create VM from ..., בוחרים באפשרות Machine images.

  3. בחלון Create VM from machine image שמופיע, מבצעים את הפעולות הבאות:

    1. בוחרים תמונת מכונה.

    2. כדי ליצור את המכונה ולהפעיל אותה, לוחצים על Create.

gcloud

כדי ליצור מכונה מקובץ אימג' של מכונה, משתמשים בפקודה gcloud compute instances create.

gcloud compute instances create INSTANCE_NAME \
    --zone=ZONE \
    --source-machine-image=SOURCE_MACHINE_IMAGE_NAME

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

  • INSTANCE_NAME: השם של המכונה
  • ZONE: האזור של המכונה
  • SOURCE_MACHINE_IMAGE_NAME: קובץ האימג' של המכונה שממנו רוצים ליצור את המכונה

דוגמה

לדוגמה, אפשר להשתמש בפקודה gcloud הבאה כדי ליצור מופע בשם my-instance באזור us-east1-b, מתמונת מכונה בשם my-machine-image.

gcloud compute instances create my-instance \
    --zone=us-east1-b \
    --source-machine-image=my-machine-image

אחרי יצירת המופע, הפלט אמור להיראות כך:

Created [https://www.s3nsapis.fr/compute/v1/projects/project-12345/zones/us-east1-b/instances/my-instance].
NAME               ZONE        MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP   STATUS
my-instance        us-east1-b  e2-standard-2               192.0.2.1   203.224.0.113  RUNNING

הערה לגבי הצפנת CMEK: כשיוצרים מכונה וירטואלית מאימג' של מכונה שמוצפן באמצעות מפתח הצפנה בניהול הלקוח (CMEK), ה-CLI של gcloud משתמש כברירת מחדל בהצפנה בניהול Google עבור הדיסקים של המכונה הווירטואלית החדשה. זה שונה מ Cloud de Confiance המסוף, שבו ה-CMEK עובר בירושה באופן אוטומטי מתמונת המכונה של המקור.

כדי לוודא שהדיסקים של המכונה הווירטואלית החדשה יקבלו בירושה את ה-CMEK מתמונת המכונה המקורית (שכפול ההתנהגות של Cloud de Confiance המסוף), צריך לספק במפורש את הגדרת הדיסק באמצעות הדגל --create-disk לכל דיסק שרוצים לשמר בו את ההצפנה באמצעות CMEK. הערך של device-name שצוין בדגל חייב להיות זהה לשם המכשיר של הדיסק בתמונת המכונה של המקור.

כדי לשמור על הצפנה באמצעות CMEK, משתמשים במבנה הפקודה הבא. בדוגמה הבאה אפשר לראות איך לשמור על הצפנה באמצעות מפתח בניהול הלקוח (CMEK) בדיסק אתחול (boot=yes) ובדיסק שאינו דיסק אתחול (boot=no).

gcloud compute instances create INSTANCE_NAME \
    --zone=ZONE \
    --source-machine-image=SOURCE_MACHINE_IMAGE \
    --create-disk=auto-delete=yes,boot=yes,device-name=DEVICE_NAME_IN_IMAGE,kms-key=KMS_KEY,kms-project=KMS_PROJECT,kms-location=KMS_LOCATION,kms-keyring=KMS_KEYRING \
    --create-disk=auto-delete=yes,boot=no,device-name=DEVICE_NAME_IN_IMAGE,kms-key=KMS_KEY,kms-project=KMS_PROJECT,kms-location=KMS_LOCATION,kms-keyring=KMS_KEYRING

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

  • INSTANCE_NAME: השם של המופע החדש של ה-VM.
  • ZONE: האזור של המופע החדש של המכונה הווירטואלית.
  • SOURCE_MACHINE_IMAGE: השם של תמונת המכונה של המקור.
  • DEVICE_NAME_IN_IMAGE: שם המכשיר של הדיסק (דיסק אתחול או דיסק שאינו דיסק אתחול) כפי שמוגדר בתמונת המכונה של המקור.
  • KMS_KEY: השם של מפתח ה-CMEK.
  • KMS_PROJECT: הפרויקט שבו נמצא המפתח.
  • KMS_LOCATION: המיקום של המפתח.
  • KMS_KEYRING: אוסף המפתחות של המפתח.

REST

ב-API, יוצרים בקשת POST אל ה-method‏ instances.insert. בגוף הבקשה, כוללים את הפרמטרים הבאים:

POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "INSTANCE_NAME",
  "sourceMachineImage": "SOURCE_MACHINE_IMAGE_URL"
}

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

  • PROJECT_ID: מזהה הפרויקט.
  • ZONE: האזור של המכונה.
  • INSTANCE_NAME: שם למכונה.
  • SOURCE_MACHINE_IMAGE_URL: כתובת ה-URL המלאה או החלקית של תמונת המכונה שרוצים להשתמש בה כדי ליצור את המכונה. לדוגמה, אם יש לכם תמונת מכונה בשם my-machine-image בפרויקט בשם myProject. כתובות ה-URL הבאות תקינות:

    • https://www.s3nsapis.fr/compute/v1/projects/myProject/global/machineImages/my-machine-image
    • projects/myProject/global/machineImages/my-machine-image
    • global/machineImages/my-machine-image

הערה לגבי הצפנה באמצעות CMEK:

כשיוצרים מכונה וירטואלית מקובץ אימג' של מכונה שמוצפן באמצעות מפתח הצפנה בניהול הלקוח (CMEK), בקשת instances.insert שמוגדרת כברירת מחדל תגרום להצפנה של הדיסקים של המכונה הווירטואלית החדשה באמצעות הצפנה בניהול Google.

כדי לוודא שהמכונה הווירטואלית החדשה והדיסקים שלה נוצרים עם אותו CMEK כמו תמונת המקור של המכונה (שכפול ההתנהגות של מסוףCloud de Confiance ), צריך לשנות את מאפיין disks כדי לציין את diskEncryptionKey לכל דיסק (דיסק אתחול או דיסק שאינו דיסק אתחול) שרוצים לשמור בו את ההצפנה באמצעות CMEK.

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

POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "INSTANCE_NAME",
  "sourceMachineImage": "SOURCE_MACHINE_IMAGE_URL",
  "disks": [
    {
      "boot": true,
      "autoDelete": true,
      "deviceName": "DEVICE_NAME_IN_IMAGE",
      "diskEncryptionKey": {
        "kmsKeyName": "projects/KMS_PROJECT/locations/KMS_LOCATION/keyRings/KMS_KEYRING/cryptoKeys/KMS_KEY"
      }
    },
    {
      "boot": false,
      "autoDelete": true,
      "deviceName": "DEVICE_NAME_IN_IMAGE",
      "diskEncryptionKey": {
        "kmsKeyName": "projects/KMS_PROJECT/locations/KMS_LOCATION/keyRings/KMS_KEYRING/cryptoKeys/KMS_KEY"
      }
    }
  ]
}

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

  • PROJECT_ID: מזהה הפרויקט.
  • ZONE: האזור של המכונה.
  • INSTANCE_NAME: השם של המופע החדש של ה-VM.
  • SOURCE_MACHINE_IMAGE_URL: כתובת ה-URL המלאה או החלקית של תמונת המכונה שרוצים להשתמש בה כדי ליצור את המכונה. לדוגמה, אם יש לכם תמונת מכונה בשם my-machine-image בפרויקט בשם myProject. כתובות ה-URL הבאות תקינות:

    • https://www.s3nsapis.fr/compute/v1/projects/myProject/global/machineImages/my-machine-image
    • projects/myProject/global/machineImages/my-machine-image
    • global/machineImages/my-machine-image
  • DEVICE_NAME_IN_IMAGE: שם המכשיר של הדיסק (דיסק אתחול או דיסק שאינו דיסק אתחול) כפי שמוגדר בתמונת המכונה של המקור.

  • KMS_PROJECT: הפרויקט שבו נמצא המפתח.

  • KMS_LOCATION: המיקום של המפתח.

  • KMS_KEYRING: אוסף המפתחות של המפתח.

  • KMS_KEY: השם של מפתח ה-CMEK.

יצירת מכונה מקובץ אימג' של מכונה עם שינויים בהגדרות

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

כשמשתמשים בתכונת הביטול, חשוב לשים לב לנקודות הבאות:

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

  • אם מופע המקור (שמשמש ליצירת תמונת המכונה) והמופע החדש שייכים לאותו פרויקט ולאותו אזור, התנאים הבאים חלים:

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

    • צריך לבטל את כל המשאבים האזוריים והזונליים עבור המופע החדש. לדוגמה, אם יוצרים מכונה מקובץ אימג' של מכונה שמכונת המקור שלה הייתה באזור אחר, צריך לבטל את ההגדרות של משאבים אזוריים כמו רשת המשנה וכללי חומת האש האזוריים. עם זאת, משאבים גלובליים כמו מאזני עומסים וחשבונות שירות לא צריכים שינוי, אלא אם רוצים לשנות אותם.

המסוף

  1. נכנסים לדף Create an instance במסוף Cloud de Confiance .

    כניסה לדף Create an instance

  2. בתפריט Create VM from ..., בוחרים באפשרות Machine images.

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

  4. אופציונלי: מציינים אפשרויות הגדרה אחרות. מידע נוסף מופיע במאמר אפשרויות הגדרה במהלך יצירת מכונה.

  5. כדי ליצור את המכונה ולהפעיל אותה, לוחצים על Create.

gcloud

כדי ליצור מכונה מקובץ אימג' של מכונה ולהוסיף את המאפיינים שרוצים לשנות, משתמשים בפקודה gcloud compute instances create.

לדוגמה, אפשר להשתמש בפקודה gcloud הבאה כדי ליצור מכונה וירטואלית בשם my-instance באזור us-east1-b, מאימג' של מכונה בשם my-machine-image. בדוגמה הזו, נעשה שימוש בהגדרות ברירת מחדל כדי לשנות את סוג המכונה, להפסיק את מדיניות התחזוקה של המארח ולהגדיר דיסק קשיח אזורי עם השם regional-disk-0.

gcloud compute instances create my-instance \
    --zone=us-east1-b \
    --source-machine-image=my-machine-image \
    --machine-type=e2-standard-2 \
    --maintenance-policy=TERMINATE \
    --create-disk=device-name=boot-device-0,boot=true,auto-delete=true \
    --create-disk=device-name=regional-disk-0,\
      replica-zones=^:^us-east1-b:us-east1-c,boot=false

REST

כדי לשנות את מאפייני תמונת המכונה במהלך יצירת המכונה, שולחים בקשת POST אל ה-method‏ instances.insert. בגוף הבקשה, כוללים את הפרמטר sourceMachineImage וכל שינוי שנדרש. אפשר להוסיף כל מאפיין שבדרך כלל מגדירים במהלך יצירת מופע. לדוגמה, כדי לשנות את סוג המכונה, קריאה ל-API תכלול את הפרמטר machineType.

POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/ZONE/machineTypes/NEW_MACHINE_TYPE",
  "sourceMachineImage": "SOURCE_MACHINE_IMAGE_URL"
}

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

  • PROJECT_ID: מזהה הפרויקט.
  • ZONE: האזור של המכונה.
  • INSTANCE_NAME: שם למכונה.
  • NEW_MACHINE_TYPE: סוג המכונה שרוצים להשתמש בה עבור המכונה.
  • SOURCE_MACHINE_IMAGE_URL: כתובת ה-URL המלאה או החלקית של תמונת המכונה שרוצים להשתמש בה כדי ליצור את המכונה. לדוגמה, אם יש לכם תמונת מכונה בשם my-machine-image בפרויקט בשם myProject. כתובות ה-URL הבאות תקינות:

    • https://www.s3nsapis.fr/compute/v1/projects/myProject/global/machineImages/my-machine-image
    • projects/myProject/global/machineImages/my-machine-image
    • global/machineImages/my-machine-image

התנהגות של ביטול

התנהגות ההחלפה ב-Compute Engine API פועלת לפי הכללים של JSON merge patch, שמתוארים ב-RFC 7396. לסיכום, הכללים הבאים חלים:

  • אם מחליפים שדה בסיסי, השדה הבסיסי התואם בתמונת המכונה מוחלף בערך של השדה הבסיסי בבקשה. שדות בסיסיים כוללים פרמטרים כמו machineType ו-name.
  • אם מחליפים שדה חוזר, כל הערכים החוזרים של המאפיין הזה מוחלפים בערכים התואמים שסופקו בבקשה. שדות חוזרים הם בדרך כלל מאפיינים מסוג list. לדוגמה, disks ו-networkInterfaces הם שדות חוזרים.
  • אם מבטלים את ההגדרה של nested object, האובייקט בתמונת המכונה מתמזג עם מפרט האובייקט התואם בבקשה. שימו לב שאם אובייקט בתוך שדה חוזר, השדה מטופל בהתאם לכללים של שדות חוזרים. תוויות הן יוצאות דופן, והן נחשבות לשדה חוזר גם אם הסוג שלהן הוא object.

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

POST https://compute.s3nsapis.fr/compute/v1/projects/my-proj/zones/us-west1-a/instances
{
  "name": "vm-from-image",
  "sourceMachineImage": "global/machineImages/my-machine-image",
  "disks": [
    {
      "kind": "compute#attachedDisks",
      "boot": true,
      "autoDelete": true,
      "deviceName": "boot-device",
      "initializeParams": {
        "sourceImage": "projects/my-proj/global/images/my-image",
        "diskType": "projects/my-proj/zones/us-west1-a/diskTypes/pd-standard",
      }
    },
    {
      "kind": "compute#attachedDisk",
      "boot": false,
      "autoDelete": true,
      "deviceName": "regional-device-0",
      "initializeParams": {
         "diskType": "projects/my-proj/zones/us-west1-a/diskTypes/pd-standard",
         "replicaZones": [
            "projects/my-proj/zones/us-west1-a",
            "projects/my-proj/zones/us-west1-c"
         ]
      }
    }
  ]
}

יצירת מכונה באמצעות קובץ אימג' של מכונה מפרויקט אחר

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

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

בקטעים הבאים מוסבר איך ליצור מכונה וירטואלית מתמונת מכונה שנמצאת בפרויקט אחר באמצעות Google Cloud CLI.

  1. מעניקים גישה לתמונת המכונה שמאוחסנת בפרויקט אחר.

    אפשר להעניק הרשאות בפרויקט המקור או בתמונת המכונה. משתמשים בפקודה gcloud compute machine-images add-iam-policy-binding כדי להעניק את ההרשאות לתמונת המכונה.

    gcloud compute machine-images add-iam-policy-binding MACHINE_IMAGE_NAME \
        --project=MACHINE_IMAGE_PROJECT \
        --member='ACCOUNT_EMAIL' \
        --role='roles/compute.admin'
    

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

    • MACHINE_IMAGE_PROJECT: מזהה הפרויקט של הפרויקט שמכיל את תמונת המכונה של המקור.
    • MACHINE_IMAGE_NAME: השם של תמונת המכונה שרוצים להוסיף לה את קישור ההרשאות.
    • ACCOUNT_EMAIL: כתובת האימייל של serviceAccount או user שיוצרים את המופע. מוודאים שהפורמט של כתובת האימייל כולל את הקידומת הנדרשת. הקידומת חייבת להיות אחת מהאפשרויות הבאות:

      • user: מציינים את זה אם כתובת האימייל משויכת לחשבון משתמש. לדוגמה, user:user@example.com.
      • serviceAccount: מציינים את זה אם כתובת האימייל משויכת לחשבון שירות. לדוגמה, serviceAccount:123456789000-compute@developer.s3ns-system.iam.gserviceaccount.com.

    דוגמה

    לדוגמה, כדי להוסיף קישור compute.admin לתמונת המכונה שנקראת my-machine-image לכתובת האימייל בחשבון השירות 123456789000-compute@developer.s3ns-system.iam.gserviceaccount.com, משתמשים בפקודה gcloud CLI הבאה:

    gcloud compute machine-images add-iam-policy-binding my-machine-image \
        --project=machine-image-project \
        --member='serviceAccount:123456789000-compute@developer.s3ns-system.iam.gserviceaccount.com' \
        --role='roles/compute.admin'
    
  2. נותנים למשתמש שמריץ את הפקודה gcloud compute instances create את התפקיד 'משתמש בחשבון שירות' (roles/iam.serviceAccountUser) בחשבון השירות שמשויך לתמונת המכונה.

  3. כדי ליצור מכונה מקובץ אימג' של מכונה, משתמשים בפקודה gcloud compute instances create.

    gcloud compute instances create INSTANCE_NAME \
        --project=INSTANCE_PROJECT_ID \
        --zone=ZONE \
        --source-machine-image=projects/MACHINE_IMAGE_PROJECT/global/machineImages/MACHINE_IMAGE_NAME \
        --service-account=SERVICE_ACCOUNT_EMAIL \
        --subnet=SUBNET
    

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

    • INSTANCE_PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את המכונה
    • INSTANCE_NAME: שם למכונה
    • ZONE: האזור של המכונה
    • MACHINE_IMAGE_PROJECT: מזהה הפרויקט שבו נמצאת תמונת המכונה
    • MACHINE_IMAGE_NAME: קובץ האימג' של המכונה שממנו יוצרים את המכונה
    • SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות שרוצים לצרף למופע
    • SUBNET: אם רשת המשנה והמכונה נמצאות באותו פרויקט, מחליפים את SUBNET בשם של רשת משנה שנמצאת באותו אזור כמו המכונה

      כדי לציין רשת משנה ברשת VPC משותפת, מחליפים את SUBNET במחרוזת בפורמט הבא:

      projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
      

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

      • HOST_PROJECT_ID: מזהה הפרויקט של הפרויקט המארח ב-VPC משותף
      • REGION: האזור של תת-הרשת
      • SUBNET_NAME: השם של תת-הרשת

      דוגמה

      לדוגמה, הפקודה הבאה יוצרת מכונה וירטואלית בשם my-instance ב-vm-project, בתחום us-east1-b, מתמונת מכונה בשם my-machine-image.

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

      gcloud compute instances create my-instance \
       --project=vm-project \
       --zone=us-east1-b \
       --source-machine-image=projects/machine-image-project/global/machineImages/my-machine-image \
       --service-account=000123456789-compute@developer.s3ns-system.iam.gserviceaccount.com
      

      אחרי שיוצרים את מכונת ה-VM, הפלט אמור להיראות כך:

      Created [https://www.googleapis.com/compute/v1/projects/project-12345/zones/us-east1-b/instances/my-instance].
      NAME               ZONE        MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP   STATUS
      my-instance        us-east1-b  e2-standard-2               192.0.2.1   203.224.0.113  RUNNING
      

מה השלב הבא?