Cloud Workstations מאפשר להריץ סקריפטים מותאמים אישית להפעלה במכונה וירטואלית של תחנת העבודה המארחת לפני שהקונטיינר של תחנת העבודה מתחיל לפעול. האפשרות הזו שימושית כשרוצים לבצע הגדרה ברמת המכונה הווירטואלית או להתקין תוכנה נוספת שצריכה לפעול מחוץ למאגר הראשי של תחנת העבודה.
לפני שמתחילים
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים
להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים
להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
הכנת סקריפט לטעינה בזמן ההפעלה
יוצרים את הסקריפט לטעינה בזמן ההפעלה שרוצים להריץ במכונה הווירטואלית של תחנת העבודה המארחת. כשכותבים את הסקריפט, חשוב להקפיד על ההנחיות הבאות:
- ב-Cloud Workstations מופעל קונטיינר תחנת העבודה שצוין, וגם כמה קונטיינרים של המערכת במכונה הווירטואלית של תחנת העבודה המארחת, כדי לוודא שתחנת העבודה פועלת בצורה תקינה. כל מאגרי התגים פועלים באמצעות
containerdruntime ולקוחcrictl. - מריצים את כל הקונטיינרים הנוספים שהופעלו על ידי סקריפט לטעינה בזמן ההפעלה באמצעות
containerd. Docker מושבת במכונה הווירטואלית המארחת כדי למנוע הפרעות לשירות Docker Daemon שפועל בתוך קונטיינר תחנת העבודה. - קונטיינרים ברמת המארח שהופעלו על ידי סקריפט לטעינה בזמן ההפעלה לא יכולים ליצור אינטראקציה עם הקונטיינר של תחנת העבודה הראשית. האינטראקציות הישירות האלה לא נתמכות כי הן עוקפות את הבדיקות של ניהול הזהויות והרשאות הגישה (IAM).
אחסון סקריפט לטעינה בזמן ההפעלה ב-Cloud Storage
מעלים את הסקריפט לקטגוריה של Cloud Storage ומוודאים שחשבון השירות שמשויך לתחנת העבודה יכול לגשת לסקריפט.
מעלים את התסריט לקטגוריה:
gcloud storage cp LOCAL_SCRIPT_PATH gs://BUCKET_NAME/SCRIPT_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
LOCAL_SCRIPT_PATH: הנתיב המקומי לקובץ של סקריפט לטעינה בזמן ההפעלה. -
BUCKET_NAME: שם הקטגוריה של Cloud Storage. -
SCRIPT_NAME: השם שרוצים לתת לקובץ הסקריפט בדלי.
-
חשוב לוודא שלחשבון השירות שבו נעשה שימוש בהגדרת תחנת העבודה יש הרשאות גישה לקובץ הסקריפט ולמאגר. אפשר גם להגדיר את הסקריפט כגלוי לכולם.
יצירת הגדרה אישית של תחנת עבודה
כדי להשתמש בסקריפט מותאם אישית לטעינה בזמן ההפעלה, יוצרים הגדרה של תחנת עבודה ומגדירים את השדה startupScriptUri בהודעה host.gceInstance ל-URI של הסקריפט ב-Cloud Storage.
יוצרים את הגדרת תחנת העבודה באמצעות API בארכיטקטורת REST:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"host": {
"gceInstance": {
"poolSize": 1,
"startupScriptUri": "gs://BUCKET_NAME/SCRIPT_NAME",
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}' \
https://workstations.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/workstationClusters/CLUSTER_ID/workstationConfigs?workstation_config_id=CONFIG_ID
מחליפים את מה שכתוב בשדות הבאים:
SERVICE_ACCOUNT: כתובת האימייל של חשבון השירות שמשויך להגדרת תחנת העבודה.-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
LOCATION: האזור שבו נמצא אשכול תחנות העבודה. -
CLUSTER_ID: המזהה של אשכול תחנות העבודה. -
CONFIG_ID: המזהה שרוצים להקצות להגדרת תחנת העבודה החדשה.
אימות ביצוע הסקריפט
כדי לוודא שהסקריפט פעל בצורה תקינה, אפשר להשתמש באחת מהשיטות הבאות:
- יומני פלט של יציאה טורית 3: יומני פלט שנוצרו על ידי הסקריפט שלכם נשלחים אוטומטית אל הפלט של יציאה טורית 3. כדי למצוא את שם המכונה הווירטואלית שהוקצתה לתחנת העבודה, אפשר לעיין ביומני הפלטפורמה.
- מתחברים למכונה הווירטואלית באמצעות SSH: אפשר להתחבר למכונה הווירטואלית של תחנת העבודה באמצעות SSH כדי לבצע ניפוי באגים נוסף בסקריפט, אם צריך.
- בדיקות מוכנות: סקריפטים להפעלה הם מאמץ מיטבי ולא חוסמים את ההפעלה של תחנת העבודה. אם לוקח לסקריפט הרבה זמן לפעול או שהוא נכשל, יכול להיות שתחנת העבודה עדיין תסומן כ'מוכנה'. כדי לוודא שתחנת העבודה לא תסומן כ'מוכנה' עד שהסקריפט יושלם, כדאי להטמיע בדיקות מוכנות.