Archiviazione dei modelli su un host esterno

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

In questo documento viene descritto come utilizzare i modelli esterni nel tuo deployment, ospitati su Internet, anziché sulla tua macchina locale.

Puoi archiviare i modelli su un host esterno in qualsiasi punto di Internet e chiamare i modelli direttamente dalla tua configurazione. L'hosting esterno di modelli offre alcuni vantaggi rispetto all'archiviazione locale dei modelli:

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

Deployment Manager recupera sempre la versione più recente dei modelli esterni ogni volta che esegui nuovamente il deployment della configurazione. Se mantieni i modelli, i deployment saranno sempre aggiornati. Deployment Manager gestirà anche l'importazione di altri modelli dipendenti al posto tuo, 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 i modelli esterni in Google Cloud Storage o in una posizione accessibile pubblicamente, come GitHub. Se è presente un URL per il file e hai accesso ai modelli, Deployment Manager sarà in grado di scaricarlo. Se il file utilizza uno schema per importare altri modelli, devi ospitarli anche nello stesso URL di base.

Su Google Cloud Storage

Per ospitare i modelli in Google Cloud Storage:

  1. Crea un bucket per i modelli oppure utilizza un bucket esistente.
  2. Carica i tuoi modelli e i file dei modelli correlati, come gli schemi, nel bucket.
  3. Se prevedi di utilizzare i modelli di un progetto Google Cloud Platform diverso da quello del progetto 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 può accedere ai modelli, poiché puoi impostare le opzioni di controllo dell'accesso nel rispettivo bucket Cloud Storage o nel modello specifico.

Al contrario, l'hosting dei modelli in altri URL accessibili pubblicamente richiede la disponibilità generale dei modelli.

Su un URL accessibile pubblicamente

In alternativa, puoi ospitare modelli esterni all'esterno di Google Cloud Storage, a condizione che i modelli siano accessibili pubblicamente. Ad esempio, puoi ospitare modelli su GitHub e farvi riferimento utilizzando l'URL GitHub.

Nello specifico, per GitHub è necessario fornire l'URL GitHub non elaborato, in modo che Deployment Manager riceva il modello invece della pagina HTML 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 per un modello locale, ma fornisci come URL il file completo del file del modello. 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 associato, 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 tua configurazione era simile a questa:

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

E c'è un file di 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.