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
- Se quiser usar os exemplos de linhas de comando neste guia, instale a ferramenta de linhas de comando`gcloud`.
- Se quiser usar os exemplos de API neste guia, configure o acesso à API.
- Leia a documentação de configuração.
- Leia a documentação sobre modelos.
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:
- Crie um contentor para os modelos ou use um contentor existente.
- Carregue os seus modelos e ficheiros de modelos relacionados, como esquemas, para o contentor.
- 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.