במהלך פיתוח אפליקציה, סביר להניח שתצטרכו ארכיטקטורות מורכבות. כדי להקל על השכפול של הפריסה ועל פתרון הבעיות, מומלץ לחלק את ההגדרה לתבניות.
תבנית היא קובץ נפרד שמגדיר קבוצה של משאבים. אפשר לעשות שימוש חוזר בתבניות בפריסות שונות, וכך ליצור עקביות בפריסות מורכבות.
אפשר להשתמש ב-Python או ב-Jinja2 כדי ליצור תבניות ל-Deployment Manager. מומלץ להשתמש בתבניות Python, כי Python מאפשרת גמישות רבה יותר ויש לה יותר תכונות כשמגדילים את קנה המידה של האפליקציה.
תבניות Python
אם בוחרים לכתוב תבניות ב-Python, התבניות צריכות לעמוד בדרישות הבאות:
התבנית צריכה להיכתב ב-Python 3.x
בתבנית צריך להגדיר שיטה בשם
GenerateConfig(context)אוgenerate_config(context). אם משתמשים בשני שמות השיטות באותה תבנית, השיטהgenerate_config()תקבל עדיפות.אובייקט
contextמכיל מטא-נתונים על הפריסה והסביבה שלכם, כמו שם הפריסה, הפרויקט הנוכחי וכו'. תשתמשו במשתנים הספציפיים לפריסה בשלבים הבאים.השיטה חייבת להחזיר מילון Python.
בדיקת תבניות לדוגמה
פותחים את vm-template.py ממאגר הדוגמאות:
cd deploymentmanager-samples/examples/v2/step_by_step_guide/step5_create_a_template/python
nano vm-template.py # use your preferred text editor
התבנית הזו מגדירה את המכונה הווירטואלית (VM) הראשונה מהדוגמאות הקודמות:
פותחים את התבנית השנייה, vm-template-2.py, שמגדירה את המכונה הווירטואלית השנייה:
בשתי התבניות, מחליפים את MY_PROJECT במזהה הפרויקט.
ייבוא תבניות
אחרי שיוצרים תבניות, צריך לייבא אותן להגדרה. פותחים את two-vms.yaml החדש:
cd deploymentmanager-samples/examples/v2/step_by_step_guide/step5_create_a_template/python
nano two-vms.yaml # use your preferred text editor
קובץ התצורה הזה כולל קטע חדש imports שקורא לשני תבניות של מכונות וירטואליות, vm-template.py ו-vm-template-2.py:
הערה לגבי שמות משאבים
כשמשתמשים בתבנית, שמות המשאבים מוגדרים באמצעות השדה name שמופיע בתבנית, ולא השם בקובץ ההגדרות.
לדוגמה, במקרה הזה, המכונות הווירטואליות נוצרות באמצעות השמות בתבניות, the-first-vm ו-the-second-vm. הערכים vm-1 ו-vm-2, שמוגדרים בהגדרה, משמשים למתן שם למופע של התבנית, אבל הם לא שמות של משאבים.
שמירת ההגדרה ופריסתה
כדי לפרוס את ההגדרה, מריצים את הפקודה הבאה:
gcloud deployment-manager deployments create deployment-with-templates --config two-vms.yaml
כדי לראות את הפריסה, מריצים את הפקודה הבאה:
gcloud deployment-manager deployments describe deployment-with-templates
מבט קדימה: שימוש בכמה תבניות
בשלב הבא, מאחדים את התבניות כך שההגדרה קוראת רק לתבנית אחת כדי לפרוס את כל המשאבים.
מחיקת הפריסה
לפני שממשיכים, מומלץ למחוק את הפריסה כדי להימנע מחיובים. לא צריך את הפריסה הזו בשלב הבא. מריצים את הפקודה הבאה כדי למחוק את הפריסה:
gcloud deployment-manager deployments delete deployment-with-templates