יצירת פריסה באמצעות gcloud או ה-API

בדף הזה מוסבר איך ליצור פריסה. פריסה היא יצירה של קבוצת משאבים שמוגדרים בהגדרה. בבקשה ליצירת הפריסה, מספקים הגדרה תקינה. פריסה יכולה לכלול מספר משאבים, במגוון שירותים של Google Cloud . כשיוצרים פריסה, Deployment Manager יוצר את כל המשאבים שמתוארים בממשקי ה-API המתאימים Google Cloud .

לפני שמתחילים

יצירת פריסה

כשיוצרים פריסה, יוצרים משאב פריסה שמכיל אוסף של משאבים. כל משאב מוגדר באופן מפורש בהגדרה שאתם מספקים בבקשה.

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 של בקשת GET API למשאב. כדי לראות באילו מאפיינים משתמש 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

המאמרים הבאים