אפשר להשתמש בתמונת מכונה כדי לאחסן את כל ההגדרות, המטא-נתונים, ההרשאות והנתונים מדיסק אחד או יותר של מכונה וירטואלית שפועלת ב-Compute Engine. מידע על מתי ואיך להשתמש בתמונות מכונה זמין במאמר תמונות מכונה.
במאמר הזה מוסבר איך לייבא תמונת מכונה ממכשיר וירטואלי.
לפני שמתחילים
- אם בפרויקט שאליו רוצים לייבא את תמונת המכונה מוגדרת מדיניות בנושא קובצי אימג' מהימנים, צריך להוסיף את
projects/compute-image-importואתprojects/compute-image-toolsלרשימת המפרסמים המורשים. - אם אתם מייבאים מכשיר וירטואלי מפרויקט אחר, כדאי לעיין במאמר בנושא ייבוא בין פרויקטים.
- כדאי לעיין בדרישות של המכונה הווירטואלית של המקור וקובץ ה-OVF במדריך לייבוא מכשירים וירטואליים ב-Compute Engine.
- כדי לדעת איך לעמוד בדרישות לפני ייבוא תמונות מכונה, אפשר לעיין במאמר דרישות מוקדמות לייבוא ולייצוא של תמונות VM.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
gcloud
-
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .
מגבלות
- אפשר לשתף תמונת מכונה בין פרויקטים. עם זאת, אין תמיכה ברשתות VPC משותפות.
- התכונה הזו לא נתמכת בפרויקטים שמוגנים באמצעות VPC Service Controls.
- אי אפשר ליצור קובצי אימג' של מכונות ממכונות וירטואליות (VM) של מקור עם דיסקים שמחוברים אליהן בנפח של יותר מ-200TB.
מערכות הפעלה נתמכות
למידע על תמיכה במערכות הפעלה, אפשר לעיין בפרטים על מערכות הפעלה.
ייבוא תמונות מכונה
אפשר לייבא תמונות מכונה ממכשירים וירטואליים באמצעות Google Cloud CLI או Cloud Build API.
gcloud
כדי לייבא תמונת מכונה ממכשירים וירטואליים, משתמשים בפקודה gcloud compute machine-images import.
gcloud compute machine-images import MACHINE_IMAGE_NAME \
--source-uri=gs:SOURCE_URI \
--os=OS
מחליפים את מה שכתוב בשדות הבאים:
-
MACHINE_IMAGE_NAME: השם של תמונת המכונה שרוצים לייבא. -
SOURCE_URI: הנתיב לקובץ ה-OVA או ה-OVF שלכם ב-Cloud Storage. -
OS: מערכת ההפעלה של קובץ ה-OVA. הדגל הזה הוא אופציונלי כברירת מחדל, אבל יכול להיות שהוא יידרש במקרים מסוימים. מומלץ לספק את הסימון הזה.
דוגמה
לדוגמה, אפשר להשתמש בפקודה gcloud הבאה כדי לייבא תמונת מכונה בשם my-machine-image מקובץ OVA של מקור בשם my-ova שמאוחסן בספרייה gs://my-bucket ופועל ב-centos-7:
gcloud compute machine-images import my-machine-image \
--source-uri=gs://my-bucket/my-ova/ \
--os=centos-7
REST
מעלים את המכשיר הווירטואלי ל-Cloud Storage.
שולחים בקשת
POSTל-methodprojects.builds.create.POST https://cloudbuild.s3nsapis.fr/v1/projects/PROJECT_ID/builds { "timeout": "7200s", "steps":[ { "args":[ "-machine-image-name=MACHINE_IMAGE_NAME", "-ovf-gcs-path=SOURCE_URI", "-os=OS", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":"gce-ovf-machine-image-import" }מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שאליו רוצים לייבא את קובץ ה-OVA. -
MACHINE_IMAGE_NAME: השם של תמונת המכונה לייבוא. לדוגמה,my-machine-image. -
SOURCE_URI: ה-URI של קובץ ה-OVA או של ספרייה שמכילה חבילות OVF שמאוחסנות ב-Cloud Storage. לדוגמה,gs://my-bucket/my-instance.ova. -
OS: מערכת ההפעלה של קובץ ה-OVA. לדוגמה,ubuntu-1604. הדגל הזה הוא אופציונלי כברירת מחדל, אבל יכול להיות שהוא יידרש במקרים מסוימים. מומלץ לספק את הדגל הזה.
למידע על ערכים נוספים של
argsשאפשר לספק, אפשר לעיין בקטע בנושא דגלים אופציונליים בדף GitHub בנושא ייבוא OVF ב-Compute Engine.-
ייבוא תמונות מכונה עם החלפות של OVF
כשמייבאים תמונת מכונה ממכשיר וירטואלי, אפשר לבטל את ההגדרות בקובץ OVF. לדוגמה, אתם יכולים לשנות את הגדרות המעבד או הזיכרון, או להשתמש ברשת בהתאמה אישית.
מעבד (CPU) וזיכרון בהתאמה אישית
כדי לשנות את הגדרות המעבד או הזיכרון שצוינו בקובץ ה-OVF, מבצעים את השלבים הבאים:
gcloud
כדי לשנות את הגדרות המעבד או הזיכרון שצוינו בקובץ OVF, פועלים לפי השלבים לייבוא תמונת מכונה ב-Google Cloud CLI ומציינים את הדגלים --custom-cpu ו---custom-memory.
דוגמה
תמונת מכונה בשם my-machine-image כוללת את ההגדרות הבאות שמוגדרות כברירת מחדל בקובץ ה-OVF:
- מערכת הפעלה:
Ubuntu 1404 - מעבד (CPU):
2 CPUs - זיכרון:
2048 MB
כדי לייבא את my-machine-image עם ההגדרות האלה, מריצים את הפקודה הבאה:
gcloud compute machine-images import my-machine-image \
--os=ubuntu-1404 --source-uri=gs://my-bucket/Ubuntu.ova \
--custom-cpu=2 --custom-memory=2048MB
REST
כדי לשנות את הגדרות המעבד או הזיכרון שצוינו בקובץ OVF, פועלים לפי השלבים של Compute Engine API כדי לייבא תמונת מכונה ולציין את הארגומנט -machine-type.
המחרוזת -machine-type מייצגת סוג מכונה מוגדר מראש או בהתאמה אישית מסדרת N1 לשימוש.
דוגמה
תמונת מכונה בשם my-machine-image בפרויקט my-project כוללת את ההחלפות הבאות שחלות על ההגדרות בקובץ OVF:
- מערכת הפעלה:
Ubuntu 1404 - מעבד (CPU):
2 CPUs - זיכרון:
2048 MB
כדי לייבא את my-machine-image עם ההחלפות האלה, שולחים את הבקשה הבאה אל Cloud Build API.
POST https://cloudbuild.s3nsapis.fr/v1/projects/my-project/builds
{
"timeout":"7200s",
"steps":[
{
"args":[
"-machine-image-name=my-machine-image",
"-ovf-gcs-path=gs://my-bucket/Ubuntu.ova",
"-os=ubuntu-1404",
"-machine-type=custom-2-2048",
"-client-id=api",
"-timeout=7000s"
],
"name":"gcr.io/compute-image-tools/gce_ovf_import:release",
"env":[
"BUILD_ID=$BUILD_ID"
]
}
],
"tags":"gce-ovf-machine-image-import"
}
רשתות בהתאמה אישית
כדי לבטל את הגדרת הרשת שצוינה בקובץ OVF, מבצעים את השלבים הבאים:
gcloud
כדי להגדיר רשת בהתאמה אישית, פועלים לפי השלבים של Google Cloud CLI לייבוא תמונת מכונה ומציינים את הדגל --network.
אם הרשת מוגדרת עם מצב רשת משנה בהתאמה אישית, צריך לציין גם את הדגלים --subnet ו---zone.
דוגמה
תמונת מכונה בשם my-machine-image כוללת את ההגדרות הבאות שמוגדרות כברירת מחדל בקובץ ה-OVF:
- מערכת הפעלה:
Ubuntu 1404 - רשת:
custom-vpc-network - תת-רשת:
company-vpc-us-east1-c - אזור:
us-east1-c
כדי לייבא את my-machine-image עם ההגדרות האלה, מריצים את פקודת הדוגמה הבאה:
gcloud compute machine-images import my-machine-image \
--os=ubuntu-1404 \
--source-uri=gs://my-bucket/Ubuntu.ova \
--network=custom-vpc-network \
--subnet=company-vpc-us-east1-c \
--zone=us-east1-c
REST
כדי להשתמש ברשת בהתאמה אישית, פועלים לפי השלבים של REST כדי לייבא תמונת מכונה ומציינים ארגומנט -network.
אם הרשת מוגדרת עם מצב רשת משנה בהתאמה אישית, צריך לציין גם את הארגומנטים -subnet ו--zone.
דוגמה
תמונת מכונה בשם my-machine-image כוללת את ההגדרות הבאות שמוגדרות כברירת מחדל בקובץ ה-OVF:
- מערכת הפעלה:
Ubuntu 1404 - רשת:
custom-vpc-network - תת-רשת:
company-vpc-us-east1-c - אזור:
us-central1-c
כדי לייבא את my-machine-image עם שינויי ברירת המחדל האלה, שולחים את הבקשה הבאה אל Compute Engine API.
POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
{
"timeout":"7200s",
"steps":[
{
"args":[
"-machine-image-name=my-machine-image",
"-ovf-gcs-path=gs://my-bucket/Ubuntu.ova",
"-os=ubuntu-1404",
"-zone=us-central1-c",
"-network=custom-vpc-network",
"-subnet=company-vpc-us-east1-c",
"-client-id=api",
"-timeout=7000s"
],
"name":"gcr.io/compute-image-tools/gce_ovf_import:release",
"env":[
"BUILD_ID=$BUsILD_ID"
]
}
],
"tags":"gce-ovf-machine-image-import"
}
מחליפים את PROJECT_ID במזהה הפרויקט.
ייבוא תמונת מכונה ברשת שלא מאפשרת כתובת IP חיצונית
כדי לייבא תמונת מכונה באמצעות רשת שלא מאפשרת כתובות IP חיצוניות, פועלים לפי השלבים הבאים:
מוסיפים את המכשיר הווירטואלי ל-Cloud Storage.
תהליך הייבוא מחייב התקנה של מנהלי חבילות במערכת ההפעלה של תמונת המכונה. יכול להיות שמנהלי החבילות האלה יצטרכו לשלוח בקשות למאגרי חבילות שנמצאים מחוץ ל- Cloud de Confiance by S3NS. כדי לאפשר גישה לעדכונים האלה, צריך להגדיר Cloud NAT. מידע נוסף זמין במאמר יצירת הגדרת NAT באמצעות Cloud Router.
מגדירים גישה פרטית ל-Google. מידע נוסף זמין במאמר הגדרת גישה פרטית ל-Google.
מייבאים את תמונת המכונה באמצעות Google Cloud CLI או Cloud Build API.
כשמייבאים תמונת מכונה ממכשיר וירטואלי, נוצרות מכונות VM זמניות בפרויקט. כדי לוודא שלא מוקצות כתובות IP חיצוניות למכונות הווירטואליות הזמניות האלה, צריך לציין דגל או ארגומנט נוסף.
למידע נוסף על הארגומנט או הדגל הנדרשים, לוחצים על הכרטיסיות הבאות:
gcloud
משתמשים בפקודה gcloud compute machine-images import עם הדגל --no-address .
gcloud compute machine-images import MACHINE_IMAGE_NAME \
--source-uri=SOURCE_URI \
--os=OS \
--zone=ZONE \
--no-address
מחליפים את מה שכתוב בשדות הבאים:
-
MACHINE_IMAGE_NAME: השם של תמונת המכונה שרוצים לייבא. -
SOURCE_URI: ה-URI של קובץ ה-OVA או ה-OVF שלכם ב-Cloud Storage. לדוגמה,gs://my-bucket/Ubuntu.ova. -
OS: מערכת ההפעלה של קובץ ה-OVA. הדגל הזה הוא אופציונלי כברירת מחדל, אבל יכול להיות שהוא יידרש במקרים מסוימים. מומלץ לספק את הסימון הזה. במאמר אפשרויות של הדגל--osשל הפקודהgcloud compute machine-images importתוכלו למצוא רשימה של הערכים שנתמכים. -
ZONE: האזור שאליו רוצים לייבא את תמונת המכונה. אם לא מציינים אזור, המערכת משתמשת באזור ברירת המחדל של הפרויקט.
REST
שליחת בקשת POST לשיטה projects.builds.create באמצעות Cloud Build API. מציינים את הארגומנט -no-external-ip.
POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
{
"timeout":"7200s",
"steps":[
{
"args":[
"-machine-image-name=MACHINE_IMAGE_NAME",
"-ovf-gcs-path=SOURCE_URI",
"-os=OS",
"-zone=ZONE",
"-no-external-ip",
"-client-id=api",
"-timeout=7000s"
],
"name":"gcr.io/compute-image-tools/gce_ovf_import:release",
"env":[
"BUILD_ID=$BUILD_ID"
]
}
],
"tags":"gce-ovf-machine-image-import"
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שאליו רוצים לייבא את תמונת המכונה. -
MACHINE_IMAGE_NAME: השם של תמונת המכונה לייבוא. לדוגמה,my-machine-image. -
SOURCE_URI: ה-URI של קובץ ה-OVA שמאוחסן ב-Cloud Storage. לדוגמה,gs://my-bucket/my-machine.ova. -
OS: מערכת ההפעלה של קובץ ה-OVA. לדוגמה,ubuntu-1604. הדגל הזה הוא אופציונלי כברירת מחדל, אבל יכול להיות שהוא יידרש במקרים מסוימים. מומלץ לספק את הדגל הזה. במאמר אפשרויות של הדגל--osשל הפקודהgcloud compute instances importתוכלו למצוא רשימה של הערכים שנתמכים. -
ZONE: האזור שבו רוצים לייבא את תמונת המכונה.
ייבוא תמונת מכונה באמצעות חשבונות שירות מותאמים אישית
במהלך ייבוא של תמונת מכונה, נוצרות בפרויקט מכונות וירטואליות (VM) זמניות. צריך לאמת את כלי הייבוא במכונות הווירטואליות הזמניות האלה.
חשבון שירות הוא זהות שמצורפת למכונה וירטואלית. אפשר לגשת לאסימוני גישה של חשבון שירות דרך שרת המטא-נתונים של המכונה הווירטואלית ולהשתמש בהם כדי לאמת את כלי הייבוא במכונה הווירטואלית.
כברירת מחדל, תהליך הייבוא משתמש בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine. עם זאת, אם חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine מושבת בפרויקט שלכם, או אם אתם רוצים להשתמש בחשבון שירות מותאם אישית של Compute Engine, אתם צריכים ליצור חשבון שירות ולהגדיר אותו לתהליך הייבוא.
gcloud
מוסיפים את המכשיר הווירטואלי ל-Cloud Storage.
יוצרים חשבון שירות ומקצים לו את התפקידים המינימליים. מידע נוסף על יצירת חשבונות שירות זמין במאמר יצירה וניהול של חשבונות שירות.
לפחות, צריך להקצות לחשבון השירות שצוין ב-Compute Engine את התפקידים הבאים:
roles/compute.storageAdminroles/storage.objectViewer
התפקידים המינימליים האלה נדרשים לחשבון השירות שצוין בדגל
--compute-service-account. מידע נוסף זמין במאמר הענקת התפקידים הנדרשים לחשבון השירות של Compute Engine.משתמשים בפקודה
gcloud compute machine-images importכדי לייבא תמונת מכונה ממכשירים וירטואליים.gcloud compute machine-images import MACHINE_IMAGE_NAME \ --source-uri=gs:SOURCE_URI \ --os=OS \ --compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL \ --service-account=SERVICE_ACCOUNT_EMAIL \ --scopes=SCOPESמחליפים את מה שכתוב בשדות הבאים:
-
MACHINE_IMAGE_NAME: השם של תמונת המכונה שרוצים לייבא. -
SOURCE_URI: הנתיב לקובץ ה-OVA או ה-OVF שלכם ב-Cloud Storage. -
OS: מערכת ההפעלה של קובץ ה-OVA. הדגל הזה הוא אופציונלי כברירת מחדל, אבל יכול להיות שהוא יידרש במקרים מסוימים. מומלץ לספק את הסימון הזה. -
TEMP_SERVICE_ACCOUNT_EMAIL: כתובת האימייל שמשויכת לחשבון השירות המותאם אישית שנוצר בשלב הקודם. חשבון השירות הזה משמש את המכונות הווירטואליות הזמניות. אם לא מציינים חשבון שירות, המכונה הווירטואלית משתמשת בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine. -
SERVICE_ACCOUNT_EMAIL: כתובת האימייל שמשויכת לחשבון השירות המותאם אישית שרוצים לצרף לכל מכונה וירטואלית שנוצרת מתמונת המכונה הזו. אין הגבלות על ההרשאות של חשבון השירות הזה, ואפשר להתאים אותו אישית לפי הצורך. אם לא מציינים חשבון שירות, חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine מצורף למכונה הווירטואלית. -
SCOPES: ציון רמת הגישה לאפשרות--service-account. אם לא מציינים היקף, המערכת משתמשת בהיקפים שמוגדרים כברירת מחדל. מידע נוסף זמין במאמר בנושא הדגל--scopes.
-
REST
מוסיפים את המכשיר הווירטואלי ל-Cloud Storage.
יוצרים חשבון שירות ומקצים לו את התפקידים המינימליים. מידע נוסף על יצירת חשבונות שירות זמין במאמר יצירת חשבונות שירות.
לפחות, צריך להקצות לחשבון השירות שצוין ב-Compute Engine את התפקידים הבאים:
roles/compute.storageAdminroles/storage.objectViewer
התפקידים המינימליים האלה נדרשים לחשבון השירות שצוין בארגומנט
-compute-service-account. מידע נוסף זמין במאמר הענקת התפקידים הנדרשים לחשבון השירות של Compute Engine.שליחת בקשת
POSTל-method projects.builds.createבאמצעות Cloud Build API.POST https://cloudbuild.s3nsapis.fr/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-machine-image-name=MACHINE_IMAGE_NAME", "-ovf-gcs-path=SOURCE_URI", "-os=OS", "-zone=ZONE", "-compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL", "-service-account=SERVICE_ACCOUNT_EMAIL", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":"gce-ovf-machine-image-import" }מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שאליו רוצים לייבא את תמונת המכונה. -
MACHINE_IMAGE_NAME: השם של תמונת המכונה לייבוא. לדוגמה,my-machine-image. -
SOURCE_URI: ה-URI של קובץ ה-OVA שמאוחסן ב-Cloud Storage. לדוגמה,gs://my-bucket/my-machine.ova. -
OS: מערכת ההפעלה של קובץ ה-OVA. לדוגמה,ubuntu-1604. הדגל הזה הוא אופציונלי כברירת מחדל, אבל יכול להיות שהוא יידרש במקרים מסוימים. מומלץ לספק את הדגל הזה. במאמר אפשרויות של הדגל--osשל הפקודהgcloud compute instances importתוכלו למצוא רשימה של הערכים שנתמכים. -
ZONE: האזור שאליו רוצים לייבא את תמונת המכונה. -
TEMP_SERVICE_ACCOUNT_EMAIL: כתובת האימייל שמשויכת לחשבון השירות המותאם אישית שנוצר בשלב הקודם. חשבון השירות הזה משמש את המכונות הווירטואליות הזמניות. אם לא מציינים חשבון שירות, המכונה הווירטואלית משתמשת בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine. -
SERVICE_ACCOUNT_EMAIL: כתובת האימייל שמשויכת לחשבון השירות המותאם אישית שרוצים לצרף לכל מכונה וירטואלית שנוצרת מתמונת המכונה הזו. אין הגבלות על ההרשאות של חשבון השירות הזה, ואפשר להתאים אותו אישית לפי הצורך. אם לא מציינים חשבון שירות, חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine מצורף למכונה הווירטואלית. -
SCOPES: ציון רמת הגישה לאפשרות--service-account. אם לא מציינים היקף, המערכת משתמשת בהיקפים שמוגדרים כברירת מחדל. מידע נוסף זמין במאמר בנושא הדגל--scopes.
-