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 e richiamarli dalla tua configurazione. L'hosting dei modelli esternamente presenta alcuni vantaggi rispetto all'archiviazione locale:
- Condividere facilmente i modelli con altri
- Assicurati che le configurazioni utilizzino sempre il modello più aggiornato
- Gestire 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 gestirà anche l'importazione di altri modelli dipendenti, se a questi 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
- Se vuoi utilizzare gli esempi di riga di comando in questa guida, installa lo strumento a riga di comando`gcloud`.
- Se vuoi utilizzare gli esempi di API in questa guida, configura l'accesso API.
- Leggi la documentazione relativa alla configurazione.
- Leggi la documentazione di Modelli.
Hosting di modelli esterni
Puoi ospitare i modelli esterni in Google Cloud Storage o in una posizione di dominio pubblico, come 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:
- Crea un bucket per i modelli o utilizzane uno esistente.
- Carica i modelli e i file di modelli correlati, come gli schemi, nel bucket.
- Se prevedi di utilizzare i modelli da un progetto della Google Cloud Platform diverso da quello a cui appartengono, 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 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 su larga scala.
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.
In particolare, per GitHub devi fornire l'URL di GitHub non elaborato in modo che Deployment Manager riceva 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
Richiamo di 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 uno schema aggiuntivo, puoi archiviare i file correlati nella stessa directory o sottodirectory relativa e includere 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 configurazione fosse simile a questa:
resources:
- name: my-salt-cluster
type: gs://v2/saltstack/salt_cluster.jinja
Inoltre, è stato trovato un file schema denominato salt_cluster.jinja.schema
che ha importato questi file:
imports:
- path: minion.py
- path: master.py
- path: examples/source/example.py
Deployment Manager scaricherà e importerà automaticamente tutti i file necessari per il modello.