Utiliser plusieurs modèles

Au cours de cette étape, vous allez découvrir un modèle qui importe d'autres modèles.

Après avoir intégré ces modèles, votre configuration ne devra appeler qu'un seul modèle pour créer un déploiement avec toutes ces ressources.

Ouvrir le modèle pour un réseau

Ouvrez le modèle nommé 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

Ce modèle importe d'autres modèles, pour toutes les ressources du déploiement : vm-template.py, vm-template-2.py pour les VM, network-template.py pour un réseau et firewall-template.py pour une règle de pare-feu.

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

Afficher la configuration

Ouvrez le fichier de configuration pour le déploiement :

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

Notez que la configuration n'a pas appelé directement les autres modèles. Toutefois, les autres modèles sont quand même importés, car compute-engine-template.py dépend des autres modèles.

# 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

Enregistrer et déployer la configuration

Pour déployer la configuration, exécutez la commande suivante :

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

Pour afficher le déploiement, exécutez la commande suivante :

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

Anticiper : propriétés et variables d'environnement des modèles

Lors de la prochaine étape, vous remplacerez certaines parties des modèles codées en dur par des modèles réutilisables, tels que des modèles et des variables d'environnement personnalisés.

Supprimer le déploiement

Il est recommandé de supprimer le déploiement afin d'éviter que des frais ne soient facturés. Ce déploiement n'est pas nécessaire pour l'étape suivante. Exécutez la commande suivante pour supprimer le déploiement :

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