Como usar vários modelos

Nesta etapa, você vai explorar um modelo que importa outros modelos.

Depois de incorporar esses modelos, sua configuração só precisa chamar um único modelo para criar uma implantação com todos esses recursos.

Como abrir o modelo para uma rede

Abra o modelo chamado 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

Esse modelo importa outros modelos para todos os recursos na implantação: vm-template.py, vm-template-2.py para máquinas virtuais (VMs), network-template.py para uma rede e firewall-template.py para uma regra 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}

Como visualizar a configuração

Abra o arquivo de configuração para a implantação:

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

A configuração não chamou diretamente os outros modelos. No entanto, os outros modelos são importados porque compute-engine-template.py depende deles.

# 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

Como salvar e implantar a configuração

Execute este comando para implantar a configuração:

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

Para ver a implantação, execute:

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

Pensando no futuro: propriedades de modelo e variáveis de ambiente

Em seguida, você vai substituir algumas partes codificadas de modelos por padrões reutilizáveis, como o modelo personalizado e as variáveis de ambiente.

Como excluir a implantação

Recomendamos que você exclua a implantação para evitar cobranças. Você não precisa desta implantação para a próxima etapa. Execute o seguinte comando para excluir a implantação:

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