בדף הזה מוסבר איך ליצור פריסה. פריסה היא יצירה של קבוצת משאבים שמוגדרים בהגדרה. בבקשה ליצירת הפריסה, מספקים הגדרה תקינה. פריסה יכולה לכלול מספר משאבים, במגוון שירותים של Google Cloud . כשיוצרים פריסה, Deployment Manager יוצר את כל המשאבים שמתוארים בממשקי ה-API המתאימים Google Cloud .
לפני שמתחילים
- אם רוצים להשתמש בדוגמאות לשורת הפקודה במדריך הזה, צריך להתקין את כלי שורת הפקודה`gcloud`.
- כדי להשתמש בדוגמאות ל-API במדריך הזה, צריך להגדיר גישה ל-API.
- יוצרים הגדרה.
יצירת פריסה
כשיוצרים פריסה, יוצרים משאב פריסה שמכיל אוסף של משאבים. כל משאב מוגדר באופן מפורש בהגדרה שאתם מספקים בבקשה.
gcloud
ב-Google Cloud CLI, משתמשים בפקודה deployments create:
gcloud deployment-manager deployments create my-first-deployment \
--config vm.yaml
הדגל --config הוא נתיב יחסי לקובץ ההגדרות שלכם ב-YAML.
כברירת מחדל, אם ההגדרה כוללת משאבים שכבר נמצאים בפרויקט, הפריסה רוכשת את המשאבים האלה ואפשר לנהל אותם באמצעות הפריסה. אם לא רוצים להקצות משאב, צריך להשתמש באפשרות --create-policy, כמו בפקודה gcloud beta הבאה:
gcloud beta deployment-manager deployments create my-first-deployment \
--config vm.yaml --create-policy CREATE
מידע על המדיניות שבה אפשר להשתמש כשיוצרים פריסות זמין במאמר הגדרת המדיניות ליצירת משאבים.
אם הפריסה נוצרה בהצלחה, אפשר לקבל תיאור של הפריסה:
gcloud deployment-manager deployments describe my-first-deployment
API
ב-API, שולחים בקשת insert() עם ההגדרה שסופקה בשורה, בגוף הבקשה:
POST https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments
{
"name": "example-config-with-templates",
"target": {
"config": {
"content": "resources:\n- name: vm-created-by-cloud-config\n type: compute.v1.instance\n properties:\n zone: us-central1-a\n machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\n disks:\n - deviceName: boot\n type: PERSISTENT\n boot: true\n autoDelete: true\n initializeParams:\n diskName: disk-created-by-cloud-config\n sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20151104\n networkInterfaces:\n - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default\n"
}
}
}
אם מייבאים תבניות, צריך לספק גם את התבניות האלה כחלק מגוף הבקשה. לדוגמה, בבקשת ה-API הבאה יש target שמייבא תבנית אחת בשם vm_template.jinja:
POST https://www-www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments
{
"name": "my-example-config-with-templates-2",
"target": {
"config": {
"content": "imports:\n- path: vm_template.jinja\n\nresources:\n- name: my-vm\n type: vm_template.jinja"
},
"imports": [
{
"content": "resources:\n- name: vm-created-by-cloud-config\n type: compute.v1.instance\n properties:\n zone: us-central1-a\n machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\n disks:\n - deviceName: boot\n type: PERSISTENT\n boot: true\n autoDelete: true\n initializeParams:\n diskName: disk-created-by-cloud-config\n sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20151104\n networkInterfaces:\n - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default",
"name": "vm_template.jinja"
}
]
}
}
הגדרת המדיניות ליצירת משאבים
כשיוצרים פריסה חדשה, אם משאב שרוצים ליצור כבר קיים בפרויקט, הפריסה מקבלת אותו.
במקרים כאלה, Deployment Manager לא יוצר משאב חדש.
אם אתם לא רוצים לרכוש משאב קיים, אתם צריכים להשתמש במדיניות CREATE לפריסה שלכם.
אפשר להשתמש במדיניות הבאה כדי ליצור את המשאבים:
CREATE_OR_ACQUIRE– [ברירת מחדל] Deployment Manager רוכש משאבים שקיימים בפרויקט, או יוצר משאבים אם הם לא קיימים. כדי להקצות משאב, Deployment Manager בודק את ההגדרה שלכם כדי לראות מה המאפיינים של המשאב שאתם מנסים ליצור. אם קיים משאב עם אותם מאפיינים, Deployment Manager יקבל את המשאב הזה כחלק מהפריסה.הנכסים שנבדקים על ידי Deployment Manager תלויים בסוג המשאב שאתם יוצרים, והם עשויים לכלול:
- ה-
nameשל המשאב - ה-
typeשל המשאב - ה-
zoneאוregionשל המשאב, אם רלוונטי
המאפיינים הם חלק מכתובת ה-URL של בקשת
GETAPI למשאב. כדי לראות באילו מאפיינים משתמש Deployment Manager כדי לקבל משאב, אפשר לעיין במאמרי העזרה של ה-API של ה-method GETשל המשאב. לדוגמה, במכונות של Compute Engine, כתובת ה-URL של הבקשה לשיטהinstances.getכוללת אתresourceId(nameבהגדרה),zoneו-project.- ה-
CREATE– Deployment Manager יוצר משאבים שלא קיימים. אם אחד מהמשאבים בהגדרה כבר קיים בפרויקט, הפריסה תיכשל.
ACQUIRE– Deployment Manager רוכש משאבים שכבר קיימים, לפי אותם קריטריונים כמוCREATE_OR_ACQUIRE.אם כבר יש לכם מספר משאבים בפרויקט ואתם רוצים לנהל אותם יחד כפריסה אחת, אתם יכולים להשתמש במדיניות
ACQUIRE.בתבנית או בהגדרה, צריך לספק את המאפיינים הנדרשים למשאבים האלה כאילו אתם יוצרים אותם. אם אחד מהמשאבים בהגדרה לא קיים בפרויקט, הפריסה תיכשל.
הצגת הפריסות
אפשר לראות רשימה של הפריסות ב- Google Cloud console, ב-API או ב-Google Cloud CLI.
המסוף
נכנסים לדף Deployments במסוף Google Cloud .
gcloud
ב-Google Cloud CLI, משתמשים בפקודת המשנה deployments list:
gcloud deployment-manager deployments list
API
ב-API, שולחים בקשת GET ריקה לאוסף Deployments:
GET https://www.googleapis.com/deploymentmanager/v2beta1/projects/myproject/global/deployments
המאמרים הבאים
- מוסיפים תוויות לפריסה.
- עדכון הפריסה