Archiviazione dei modelli su un host esterno

Questo documento descrive come utilizzare nel deployment modelli esterni ospitati su internet anziché sulla tua macchina locale.

Puoi archiviare i modelli su un host esterno ovunque su internet, richiamare questi modelli dall'interno della configurazione. Modelli di hosting presenta alcuni vantaggi rispetto all'archiviazione locale dei modelli:

  • Condividi facilmente i modelli con altri
  • Assicurati che le configurazioni utilizzino sempre il modello più aggiornato
  • Gestisci automaticamente le importazioni e gli schemi pertinenti

Deployment Manager recupera sempre la versione più recente dei modelli esterni ogni volta che esegui il redeployment della configurazione. Se gestisci i modelli, anche i deployment saranno sempre aggiornati. Deployment Manager gestire l'importazione di altri modelli dipendenti se vi viene fatto riferimento nel modello esterno.

Esempio

Questa configurazione importa un modello esterno:

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

Prima di iniziare

Hosting di modelli esterni

Puoi ospitare modelli esterni in Google Cloud Storage o in un accessibile pubblicamente, ad esempio GitHub. Se esiste un URL del file e hai accesso ai modelli, Deployment Manager potrà scaricarlo. Se il file utilizza uno schema per importare altri modelli, devi anche ospitare questi modelli nello stesso URL di base.

Su Google Cloud Storage

Per ospitare i modelli in Google Cloud Storage:

  1. Crea un bucket per i modelli o utilizzane uno esistente.
  2. Caricare i modelli e relativi file modello, come gli schemi, al bucket.
  3. Se prevedi di utilizzare i modelli di un'altra Google Cloud Platform a cui appartengono i modelli, imposta i controlli di accesso per consentire l'accesso.

L'hosting dei modelli in Google Cloud Storage ti consente di controllare chi ha accesso ai modelli perché puoi impostare le opzioni di controllo dell'accesso sul rispettivo bucket Cloud Storage o sul modello specifico.

Al contrario, l'hosting dei modelli su altri URL pubblicamente accessibili richiede che tu li renda disponibili a livello generale.

Su un URL pubblicamente accessibile

In alternativa, puoi ospitare modelli esterni al di fuori di Google Cloud Storage, purché siano accessibili pubblicamente. Ad esempio, puoi ospitare i modelli su GitHub e fare riferimento ai modelli utilizzando l'URL di GitHub.

Nello specifico per GitHub, devi fornire l'URL non elaborato di GitHub in modo che Deployment Manager recupera il modello anziché la pagina HTML di GitHub. Ad esempio, un URL non elaborato ha il seguente aspetto:

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

Chiamata a un modello esterno

Chiama un modello esterno come faresti con un modello locale, ma fornisci l'URL completo del file del modello come tipo. Ad esempio:

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

Per un URL GitHub:

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

Se un modello esterno importa altri modelli o se è presente , puoi archiviare i file correlati nella stessa directory o nella stessa directory nella sottodirectory e includi questi altri modelli con un URL relativo. Deployment Manager cercherà questi altri modelli utilizzando il percorso relativo in base all'URL di base.

Ad esempio, se la tua configurazione era simile alla seguente:

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

Un file di schema denominato salt_cluster.jinja.schema ha importato questi file:

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

Deployment Manager scaricherà e importerà tutti i file necessari per modello.