Armazenar modelos num anfitrião externo

Este documento descreve como usar modelos externos na sua implementação que estão alojados nalgum local na Internet em vez do seu computador local.

Pode armazenar modelos num anfitrião externo em qualquer lugar na Internet e chamar estes modelos a partir da sua configuração. O alojamento de modelos externamente tem determinadas vantagens em relação ao armazenamento local dos modelos:

  • Partilhe facilmente modelos com outras pessoas
  • Certifique-se de que as configurações estão sempre a usar o modelo mais atualizado
  • Faça a gestão automática de importações e esquemas relevantes

O Deployment Manager obtém sempre a versão mais recente dos modelos externos cada vez que reimplementa a sua configuração. Se mantiver os modelos, as implementações também vão estar sempre atualizadas. O Deployment Manager também processa a importação de outros modelos dependentes se forem referenciados no modelo externo.

Exemplo

Esta configuração importa um modelo externo:

resources:
- name: my-frontend
  type: gs://my-frontend-templates/webserver-frontend.jinja

Antes de começar

Alojamento de modelos externos

Pode alojar modelos externos no Google Cloud Storage ou numa localização acessível publicamente, como o GitHub. Desde que exista um URL para o ficheiro e tenha acesso aos modelos, o Deployment Manager consegue transferi-lo. Se o ficheiro usar um esquema para importar outros modelos, também tem de alojar esses modelos no mesmo URL de base.

No Google Cloud Storage

Para alojar modelos no Google Cloud Storage:

  1. Crie um contentor para os modelos ou use um contentor existente.
  2. Carregue os seus modelos e ficheiros de modelos relacionados, como esquemas, para o contentor.
  3. Se planeia usar os modelos a partir de um projeto da Google Cloud Platform diferente do projeto ao qual os modelos pertencem, defina os controlos de acesso para permitir esse acesso.

A alojamento de modelos no Google Cloud Storage permite-lhe controlar quem tem acesso aos modelos, uma vez que pode definir opções de controlo de acesso no contentor do Cloud Storage ou no modelo específico.

Por outro lado, alojar os seus modelos noutros URLs acessíveis publicamente requer que disponibilize os modelos de forma generalizada.

Num URL acessível publicamente

Em alternativa, pode alojar modelos externos fora do Google Cloud Storage, desde que os modelos sejam acessíveis publicamente. Por exemplo, pode alojar modelos no GitHub e referenciar os modelos através do URL do GitHub.

Especificamente para o GitHub, tem de fornecer o URL do GitHub não processado para que o Deployment Manager obtenha o modelo em vez da página HTML do GitHub. Por exemplo, um URL não processado tem o seguinte aspeto:

https://raw.githubusercontent.com/GoogleCloudPlatform/deploymentmanager-samples/master/examples/v2/single_vm/jinja/vm_template.jinja

Chamar um modelo externo

Chame um modelo externo como faria com um modelo local, mas forneça o URL completo do ficheiro de modelo como o tipo. Por exemplo:

resources:
- name: my-salt-cluster
  type: gs://v2/saltstack/salt_cluster.jinja

Para um URL do GitHub:

resources:
- name: my-salt-cluster
  type: https://raw.githubusercontent.com/GoogleCloudPlatform/deploymentmanager-samples/master/examples/v2/single_vm/vm_template.jinja

Se um modelo externo importar outros modelos ou se existir um esquema associado, pode armazenar os ficheiros relacionados no mesmo diretório ou subdiretório relativo e incluir estes outros modelos com um URL relativo. O Deployment Manager procura estes outros modelos através do caminho relativo com base no URL base.

Por exemplo, se a configuração tiver o seguinte aspeto:

resources:
- name: my-salt-cluster
  type: gs://v2/saltstack/salt_cluster.jinja

E existia um ficheiro de esquema com o nome salt_cluster.jinja.schema que importou estes ficheiros:

imports:
- path: minion.py
- path: master.py
- path: examples/source/example.py

O Deployment Manager transfere e importa automaticamente todos os ficheiros necessários para o modelo.