Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Usa varias plantillas

En este paso, explorarás una plantilla que importa otras plantillas.

Después de incorporar estas plantillas, tu configuración solo necesita llamar a una plantilla única para crear una implementación con todos estos recursos.

Abre la plantilla para una red

Abre la plantilla llamada 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

Esta plantilla importa otras plantillas para todos los recursos en la implementación: vm-template.py, vm-template-2.py para máquinas virtuales (VM), network-template.py para una red y firewall-template.py para una regla de firewall.

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

Visualiza la configuración

Abre el archivo de configuración para la implementación:

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

Ten en cuenta que la configuración no llamó de forma directa a las otras plantillas. Sin embargo, las otras plantillas se importan porque compute-engine-template.py depende de las otras plantillas.

# 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

Guarda la configuración y, luego, impleméntala

Ejecuta este comando para implementar la configuración:

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

Ejecuta el siguiente comando para ver la implementación:

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

De cara al futuro: propiedades de la plantilla y variables de entorno

A continuación, reemplazarás algunas partes codificadas de las plantillas con patrones que puedes volver a usar como plantillas personalizadas y variables de entorno.

Borrar tu implementación

Te recomendamos borrar la implementación para evitar cambios. No necesitas esta implementación para el siguiente paso. Ejecuta el siguiente comando para borrar la implementación:

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