Mehrere Vorlagen verwenden

In diesem Schritt sehen Sie sich eine Vorlage an, mit der andere Vorlagen importiert werden.

Nach dem Einbinden dieser Vorlagen muss Ihre Konfiguration nur eine einzelne Vorlage aufrufen, um eine Bereitstellung mit all diesen Ressourcen zu erstellen.

Vorlage für ein Netzwerk öffnen

Öffnen Sie die Vorlage namens 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

Diese Vorlage importiert andere Vorlagen für alle Ressourcen in der Bereitstellung: vm-template.py, vm-template-2.py für virtuelle Maschinen (VMs), network-template.py für ein Netzwerk und firewall-template.py für eine Firewallregel.

# 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}

Konfiguration ansehen

Öffnen Sie die Konfigurationsdatei für die Bereitstellung:

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

Beachten Sie, dass die Konfiguration die anderen Vorlagen nicht direkt aufgerufen hat. Die anderen Vorlagen werden jedoch importiert, da compute-engine-template.py von den anderen Vorlagen abhängt.

# 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

Konfiguration speichern und bereitstellen

Führen Sie folgenden Befehl aus, um die Konfiguration bereitzustellen:

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

Mit dem folgenden Befehl können Sie sich die Bereitstellung ansehen:

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

Nächstes Thema: Vorlagenattribute und Umgebungsvariablen

Als Nächstes ersetzen Sie einige hartcodierte Teile von Vorlagen durch wiederverwendbare Muster wie benutzerdefinierte Vorlagenattribute und Umgebungsvariablen.

Bereitstellung löschen

Sie sollten die Bereitstellung löschen, um Kosten zu vermeiden. Diese Bereitstellung benötigen Sie für den nächsten Schritt nicht. Führen Sie den folgenden Befehl aus, um die Bereitstellung zu löschen:

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