שימוש בכמה תבניות

בשלב הזה תכירו תבנית שמייבאת תבניות אחרות.

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

פתיחת תבנית לרשת

פותחים את התבנית שנקראת compute-engine-template.py:

cd deploymentmanager-samples/examples/v2/step_by_step_guide/step6_use_multiple_templates/python

nano compute-engine-template.py  # use your preferred text editor

התבנית הזו מייבאת תבניות אחרות, לכל המשאבים בפריסה: vm-template.py, vm-template-2.py למכונות וירטואליות (VM),‏ network-template.py לרשת ו-firewall-template.py לכלל חומת אש.

# Copyright 2016 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""Creates the Compute Engine."""


def GenerateConfig(context):
  """Creates the Compute Engine with network and firewall."""

  resources = [{
      'name': 'vm-1',
      'type': 'vm-template.py'
  }, {
      'name': 'vm-2',
      'type': 'vm-template-2.py'
  }, {
      'name': 'network-1',
      'type': 'network-template.py'
  }, {
      'name': 'firewall-1',
      'type': 'firewall-template.py'
  }]
  return {'resources': resources}

צפייה בהגדרה

פותחים את קובץ ההגדרות לפריסה:

cd deploymentmanager-samples/examples/v2/step_by_step_guide/step6_use_multiple_templates/python

nano config-with-many-templates.yaml  # use your preferred text editor

שימו לב שההגדרה לא קראה ישירות לתבניות האחרות. עם זאת, התבניות האחרות מיובאות כי compute-engine-template.py תלוי בתבניות האחרות.

# Copyright 2016 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

imports:
- path: vm-template.py
- path: vm-template-2.py
- path: network-template.py
- path: firewall-template.py
- path: compute-engine-template.py

resources:
- name: compute-engine-setup
  type: compute-engine-template.py

שמירת ההגדרה ופריסתה

מריצים את הפקודה הבאה כדי לפרוס את ההגדרה:

gcloud deployment-manager deployments create deployment-with-many-templates \
  --config config-with-many-templates.yaml

כדי לראות את הפריסה, מריצים את הפקודה:

gcloud deployment-manager deployments describe deployment-with-many-templates

מה צפוי בהמשך: מאפייני תבניות ומשתני סביבה

בשלב הבא, מחליפים חלקים מסוימים בתבניות שמוגדרים בתוך הקוד בדפוסים לשימוש חוזר, כמו תבנית מותאמת אישית ומשתני סביבה.

מחיקת הפריסה

כדי להימנע מחיובים, מומלץ למחוק את הפריסה. לא צריך את הפריסה הזו לשלב הבא. מריצים את הפקודה הבאה כדי למחוק את הפריסה:

gcloud deployment-manager deployments delete deployment-with-many-templates