יצירת פתרון שמבוסס על Deployment Manager
כשיוצרים פתרונות בקטלוג השירותים למשתמשים בארגון, אפשר ליצור פתרון Deployment Manager (DM), שהמשתמשים מפעילים באמצעות תבנית Deployment Manager. אחרי שיוצרים פתרון, אפשר לשתף אותו עם המשתמשים על ידי הוספתו לקטלוגים.
לפני שמתחילים
התפקיד שלכם בארגון Google Cloudשמשויך לפרויקט Google Cloud שבו מופעל Service Catalog צריך להיות אדמין של קטלוג (
roles/cloudprivatecatalogproducer.admin) או מנהל קטלוג (roles/cloudprivatecatalogproducer.manager). אם לא הוקצה לכם התפקיד הזה, פנו לאדמין הארגוני כדי לבקש גישה.-
מפעילים את Cloud Deployment Manager API ואת Compute Engine API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים
הכנת תבנית הפריסה
כדי ליצור פתרון Deployment Manager ב-Service Catalog, צריך קודם להכין קובץ ZIP של תבנית Deployment Manager להעלאה, שצריך להכיל את הקבצים הבאים:
- קובץ תבנית Jinja שמסתיים בסיומת
.jinjaאו קובץ תבנית Python שמסתיים בסיומת.py. - קובץ סכימה שמסתיים בסיומת
.jinja.schemaלתבנית Jinja או בסיומתpy.schemaלתבנית Python.
שם קובץ ה-ZIP צריך להיות זהה לשמות של קובצי הסכימה ו-Jinja או Python. לדוגמה, אם שם קובץ ה-ZIP הוא android-dev-environment.zip, שם קובץ סכימת Jinja בתוך קובץ ה-ZIP צריך להיות android-dev-environment.jinja.schema, ושם תבנית Jinja צריך להיות android-dev-environment.jinja.
בדוגמה הבאה של קוד מוצג קובץ סכימה ליצירת טופס פריסה:
info:
title: Single Google Compute Engine Machine
author: Google Inc.
description: Creates a virtual machine based on zone and machine type selection.
required:
- machinetype
- zone
properties:
machinetype:
title: Machine type
type: string
enum:
- n2-standard-2
- n2-standard-4
- n2-standard-8
- n2-highmem-2
- n2-highmem-4
- n2-highmem-8
- n2-highcpu-2
- n2-highcpu-4
- n2-highcpu-8
zone:
title: Zone
type: string
enum:
- us-central1-a
- us-central1-c
- us-east1-b
- us-east1-c
- us-west1-a
- us-west1-b
- us-west1-c
בדוגמה הבאה של קוד מוצג קובץ Jinja ליצירת מכונה וירטואלית קבועה:
# Creates a Persistent VM
resources:
- type: compute.v1.instance
name: vm-{{ env["deployment"] }}
properties:
zone: {{ properties["zone"] }}
# Note the machineType definition at the end. n2-custom-4-5120 specifies n2 machine family with 4 CPUs and 5GB (5120 MB) of RAM. For custom machine types, refer to https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type
machineType: https://www.googleapis.com/compute/v1/projects/{{ env["project"] }}/zones/{{ properties["zone"] }}/machineTypes/{{ properties["machinetype"] }}
disks:
- deviceName: boot
type: PERSISTENT
boot: true
autoDelete: true
initializeParams:
diskName: disk-{{ env["deployment"] }}
sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/family/debian-9
networkInterfaces:
- network: https://www.googleapis.com/compute/v1/projects/{{ env["project"] }}/global/networks/default
# Access Config required to give the instance a public IP address
accessConfigs:
- name: External NAT
type: ONE_TO_ONE_NAT
יצירת הפתרון ב-Service Catalog
כדי ליצור פתרון מבוסס-תבנית של Deployment Manager:
נכנסים לדף Solutions ב-Service Catalog Admin במסוף Google Cloud .
כניסה לדף Solutionsלוחצים על Select (בחירה) כדי לבחור את הפרויקט Google Cloud .
לוחצים על יצירת פתרון. מהרשימה הנפתחת, בוחרים באפשרות יצירת פתרון לניהול הודעות ישירות.
מזינים שם, תיאור וסלוגן לפתרון. הסלוגן הוא תיאור קצר של פתרון שהמשתמשים רואים כשהם מעיינים ב-Service Catalog.
מעלים קובץ ZIP שמכיל את הקבצים של הגדרת פריסה.
אפשר גם להעלות סמל לפתרון. המידות המומלצות לסמל הן 80 על 80 פיקסלים.
אפשר גם להזין קישור לתמיכה ופרטי קשר של היוצר.
אפשר גם להוסיף קישור למסמכי העזרה של הפתרון.
לוחצים על יצירה.
בצילום המסך הבא מוצגת דוגמה ליצירת פתרון שמבוסס על DM:
השלבים הבאים
- מקצים את הפתרון לקטלוג, כדי שמשתמשים בארגון יוכלו לגשת לפתרון ולפרוס אותו.