בדף הזה מופיעים טיפים שיכולים להיות שימושיים כשמשתמשים בכלי שורת הפקודה gcloudלניהול משאבי Compute Engine. כדי לראות רשימה מלאה של כל הדגלים והפקודות הזמינים של gcloud compute, אפשר להשתמש בעזרה המובנית של הפקודה (--help), במסמכי העזר שפורסמו או במסמכי הליבה של gcloud.
לפני שמתחילים
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
- הגדרת אזור ותחום כברירת מחדל
-
אחזור מידע על משאבים
אפשר לאחזר מידע על משאבי Compute Engine בשתי דרכים: באמצעות הפקודה list כדי לקבל רשימה של משאבים, ובאמצעות הפקודה describe כדי לקבל פרטים על משאב ספציפי.
אחזור משאבים באמצעות פקודות list
הפקודות list נועדו להחזיר טבלה קריאה של הנתונים הרלוונטיים ביותר למשאבים המבוקשים. אפשר גם לסנן את התוצאות כדי לקבל רשימה קצרה יותר עם תוצאות רלוונטיות יותר.
- סינון שמות באמצעות ביטויים רגולריים
- אפשר להשתמש בתחביר של RE2 כדי להתאים שמות של משאבים (לדוגמה, שמות של מופעים או דיסקים). אפשר לעיין בפקודה
gcloud compute instances list. - דגלים של פקודות
--limitהמספר המקסימלי של תוצאות שיוחזרו. הדגל הזה שימושי במיוחד כשמשתמשים בו עם הדגל
--sort-by, כמו שמתואר בקטע אחזור משאבים באמצעות פקודות describe.--sort-by SORT_BYשדה למיון, אם רלוונטי. כדי לבצע מיון בסדר יורד, מוסיפים טילדה (~) לפני הערך. הדגל הזה משתלב עם דגלים אחרים,בסדר הזה:
--flatten, --sort-by, --filterו---limit.
אחזור משאבים באמצעות פקודות describe
הפקודות של describe מיועדות להצגת נתונים על משאב אחד. חובה לציין את שם המשאב בפקודה describe. אם אתם לא זוכרים את שם המשאב, אתם יכולים להריץ את הפקודה list כדי לקבל רשימה של משאבים. לדוגמה, שתי הפקודות הבאות ממחישות תרחיש שבו אפשר להציג רשימה של תמונות כדי לקבל את שם התמונה ואת הפרויקט שמשויך אליה, וכך לספק אותם כקלט לפקודה describe:
gcloud compute images list
NAME PROJECT FAMILY DEPRECATED STATUS ... centos-7-v20170620 centos-cloud centos-7 READY ... debian-9-stretch-v20170619 debian-cloud debian-9 READY ...
gcloud compute images describe debian-9-stretch-v20170619 --project debian-cloud
פורמט הפלט שמוגדר כברירת מחדל בפקודות describe הוא YAML, אבל אפשר להשתמש בדגל --format כדי לבחור בין פורמטים של פלט JSON, YAML וטקסט.
פלט בפורמט JSON יכול להיות שימושי אם אתם מנתחים את הפלט, בעוד שבפלט בפורמט טקסט כל מאפיין מופיע בשורה נפרדת.
gcloud compute regions describe us-central1 --format json
{
"creationTimestamp": "2013-09-06T10:36:54.847-07:00",
"description": "us-central1",
"id": "6837843067389011605",
"kind": "compute#region",
"name": "us-central1",
...
"status": "UP",
"zones": [
"https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a",
"https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-b",
"https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f"
]
}דוגמאות
דוגמאות לפקודות list
כשמציגים רשימה של משאבים, מקבלים טבלה קלה לקריאה עם נתוני סיכום. לדוגמה, כדי להציג נתוני סיכום לגבי מכונות בפרויקט, משתמשים בפקודה instances list:
gcloud compute instances list
NAME ZONE MACHINE_TYPE INTERNAL_IP EXTERNAL_IP STATUS example-instance asia-east1-b e2-standard-2 10.240.95.199 107.167.182.44 RUNNING example-instance2 us-central1-a e2-standard-2 10.240.173.254 23.251.148.121 RUNNING test-instance us-central1-a e2-standard-2 10.240.118.207 23.251.153.172 RUNNING
אפשר לסנן תוצאות של פקודות list באמצעות ביטויים רגולריים על ידי הוספת הדגל --filter עם האופרטור key ~ value. לדוגמה, אפשר לסנן את רשימת המכונות כך שיכללו רק את המכונות שהשם שלהן מכיל את המילה test:
gcloud compute instances list --filter="name ~ .*test.*"
NAME ZONE MACHINE_TYPE INTERNAL_IP EXTERNAL_IP STATUS test-instance us-central1-a e2-standard-2 10.240.118.207 23.251.153.172 RUNNING
כדי להחזיר רשימה של פעולות באזור עם status של DONE בלי httpStatus של 200, צריך להחיל מסנן zone על פקודה operations list ואז grep את התוצאות:
gcloud compute operations list --filter="zone:(us-central1-a)" | grep DONE | grep -v 200
NAME HTTP_STATUS TYPE TARGET STATUS operation-1397752585735-4f73fa25b4b58-f0920fd5-254d709f 400 delete us-central1-a/disks/example-instance DONE operation-1398357613036-4f7cc80cb41e0-765bcba6-34bbd040 409 insert us-central1-a/instances/i-1 DONE operation-1398615481237-4f8088aefbe08-cc300dfa-2ce113cf 409 insert us-central1-a/instances/i-2 DONE
כדי לקבל רשימה של דיסקים ב-us-central1-a, ממוינים בסדר יורד לפי שם (--sort-by ~NAME), משתמשים בפקודה disks list:
gcloud compute disks list --sort-by ~NAME --filter="zone:(us-central1-a)"
בתרחישים מסוימים, יכול להיות שתרצו לקבל את קישור ה-URI המלא למשאב, למשל בבקשות שבהן אתם מעבירים את הפלט מפקודת listלפקודה או לאפליקציה אחרת שמקבלת רשימה של קישורי משאבים.
כדי להציג קישורי משאבים מלאים של URI, משתמשים בדגל --uri עם הפקודה list.
gcloud compute instances list --uri --filter="name~'^example-.*'"
https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance1 https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance2
כדי להשתמש בפלט הפקודה הקודמת list בתוך פקודה שמוחקת מופעים, משתמשים בפקודה:
gcloud compute instances delete $(gcloud compute instances list --uri --filter="name~'^example-.*'")
דוגמאות לפקודות describe
כדי לקבל פרטים על מופע אחד בלבד, מציינים את המופע, כולל האזור.
לדוגמה, כדי להציג מידע על המופע בשם example-instance באזור asia-east1-b, אפשר להשתמש בפקודה instances describe:
gcloud compute instances describe example-instance --zone asia-east1-b
כברירת מחדל, הפלט שמתקבל הוא YAML. כדי לשנות את הפלט ל-JSON או לטקסט (מאפיין אחד בכל שורה), משתמשים בדגל --format. לדוגמה, כדי לקבל פלט טקסט לאותו מופע, משתמשים בפונקציה:
gcloud compute instances describe example-instance --zone asia-east1-b --format text
--- canIpForward: False creationTimestamp: 2014-04-19T06:43:04.087-07:00 disks[0].autoDelete: False disks[0].boot: True disks[0].deviceName: example-instance ...
כדי לקבל פרטים על פעולה ספציפית, משתמשים בפקודה operations list כדי למצוא את ה-URI המוגדר במלואו של הפעולה:
gcloud compute operations list --filter="zone:(us-central1-a)"
NAME TYPE TARGET HTTP_STATUS STATUS operation-1406155165815-4fee4032850d9-7b78077c-a170c5c0 delete us-central1-a/instances/example-instance 200 DONE operation-1406155180632-4fee4040a67c1-bf581ed8-ab5af2b8 delete us-central1-a/instances/example-instance-2 200 DONE ...
אחר כך משתמשים ב-URI בפקודה operations describe:
gcloud compute operations describe \
operation-1406155165815-4fee4032850d9-7b78077c-a170c5c0 --zone us-central1-a
endTime: '2014-07-23T15:40:02.463-07:00' id: '31755455923038965' insertTime: '2014-07-23T15:39:25.910-07:00' kind: compute#operation name: operation-1406155165815-4fee4032850d9-7b78077c-a170c5c0 operationType: delete progress: 100 ...
הפקודה הבאה מקבלת את הגדרות המופע בפורמט JSON (--format json).
gcloud compute instances describe example-instance \
--zone us-central1-a
--format json
{
...
"name": "example-instance",
"networkInterfaces": [
{
"accessConfigs": [
{
"kind": "compute#accessConfig",
"name": "external-nat",
"natIP": "107.167.187.66",
"type": "ONE_TO_ONE_NAT"
}
],
"name": "nic0",
"network": "https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default",
"networkIP": "10.240.111.51"
}
],
...
"status": "RUNNING"
...
}בדיקה של המשתמש שאליו יש לכם הרשאה
כדי לגלות לאיזה חשבון יש לכם הרשאה, משתמשים בפקודה הבאה:
gcloud auth list
ביטול טוקן רענון
כדי לבטל את פרטי הכניסה של חשבון במכונה שבה אתם משתמשים ב-Google Cloud CLI, משתמשים בפקודה:
gcloud auth revoke
תצטרכו לבצע אימות מחדש באמצעות gcloud init.
אפשר גם לבטל את ההרשאה שניתנה ל-CLI של gcloud לגשת למשאבים שלכם. לדוגמה, אם אסימוני הרענון שלכם נפרצו. כדי לבטל הרשאה ל-CLI של gcloud:
- מתחברים לדף חשבון Google.
- לוחצים על אבטחה ואז על הצגת הכול בקטע הרשאות לחשבון.
- בוחרים באפשרות Google Cloud SDK ולוחצים על ביטול הגישה.
הפעלה מחדש של מכונה
כדי לאפס מכונה בשם example-instance באזור us-central1-a, משתמשים בפקודה instances reset:
gcloud compute instances reset example-instance --zone us-central1-a
במאמר איפוס מופע מוסברות ההשלכות של איפוס.