I seguenti componenti sono i concetti fondamentali di Deployment Manager.
Configurazione
Una configurazione descrive tutte le risorse necessarie per un singolo deployment.
Una configurazione è un file scritto con sintassi YAML che elenca ogni risorsa
che vuoi creare e le rispettive proprietà della risorsa. Una configurazione deve
contiene una sezione resources:
seguita dall'elenco delle risorse da creare.
Ogni risorsa deve contenere tre componenti:
name
: una stringa definita dall'utente per identificare questa risorsa, ad esempiomy-vm
,project-data-disk
,the-test-network
.type
: il tipo di risorsa di cui viene eseguito il deployment, ad esempiocompute.v1.instance
,compute.v1.disk
. I tipi di risorse di base sono descritti ed elencati nella Tipi di risorse supportate documentazione.properties
: i parametri per questo tipo di risorsa. Devono corrispondere proprietà per il tipo, ad esempiozone: asia-east1-a
,boot: true
.
Ecco una configurazione di esempio:
resources:
- name: the-first-vm
type: compute.v1.instance
properties:
zone: us-central1-a
machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/f1-micro
disks:
- deviceName: boot
type: PERSISTENT
boot: true
autoDelete: true
initializeParams:
sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20150423
networkInterfaces:
- network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default
accessConfigs:
- name: External NAT
type: ONE_TO_ONE_NAT
Modelli
Una configurazione può contenere modelli, che sono essenzialmente parte di configurazione di base che è stato astratto in singoli componenti di base. Dopo il giorno crei un modello, puoi riutilizzarlo in vari deployment in base alle esigenze. Analogamente, se ti capita di riscrivere configurazioni che condividono proprietà, puoi astrarre le parti condivise in modelli. I modelli sono molto più flessibile rispetto ai singoli file di configurazione e intende supportare e la facilità di portabilità tra i diversi deployment.
Un file modello è scritto in Python o Jinja2. Deployment Manager interpreterà ogni modello in modo ricorsivo e incorporerà i risultati all'interno il file di configurazione. Di conseguenza, l'interpretazione di ogni modello restituisce per le risorse la stessa sintassi YAML definita sopra di configurazione del deployment.
Per creare un modello semplice, leggi Creazione di un modello di base.
Le configurazioni sono definite completamente espanse o non espanse. Un'immagine completamente espansa che descrive tutte le risorse e le proprietà del deployment, inclusi eventuali contenuti di file modello importati. Ad esempio, fornisce una configurazione non espansa che utilizza un modello simile al seguente:
imports:
- path: vm_template.jinja
resources:
- name: vm-instance
type: vm_template.jinja
properties:
zone: us-central1-a
project: myproject
Una volta espanso, il file di configurazione conterrà i contenuti di tutti i tuoi modelli, come in questo caso:
resources:
- name: the-first-vm
type: compute.v1.instance
properties:
zone: us-central1-a
machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/f1-micro
disks:
- deviceName: boot
type: PERSISTENT
boot: true
autoDelete: true
initializeParams:
sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20150423
networkInterfaces:
- network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default
accessConfigs:
- name: External NAT
type: ONE_TO_ONE_NAT
Risorsa
Una risorsa rappresenta una singola risorsa API. Può essere una risorsa API fornita da un tipo di base gestito da Google o da una risorsa API fornita da un provider di tipi. Ad esempio, un'istanza Compute Engine è una singola risorsa, un'istanza Cloud SQL è una singola risorsa e così via.
Per specificare una risorsa, devi fornire un Tipo per quella risorsa. Consulta: consulta la sezione Tipi di seguito per ulteriori informazioni sui tipi.
Tipi
Per creare una risorsa in Deployment Manager, devi specificare un type
. Un tipo
può rappresentare una singola risorsa API, nota come tipo di base, o un insieme
di risorse, noto come tipo composito, che verranno create come parte
e deployment continuo.
Ad esempio, per creare un'istanza VM di Compute Engine, specifica tipo di base come questo nella tua configurazione:
resources:
- name: the-first-vm
type: compute.v1.instance # The type of resource to deploy
...
Deployment Manager offre un elenco dei tipi di base gestiti da Google che possono essere usate immediatamente. Puoi trovare un elenco di questi tipi nella Tipi e proprietà di risorse supportate documentazione.
Tipi di base e fornitori di tipi
Un tipo di base crea una singola risorsa primitiva. Ad esempio, Di proprietà di Google
i tipi di base includono compute.v1.instance
, storage.v1.bucket
e
sqladmin.v1beta4.database
, tutti serviti dal rispettivo server di computing
API Engine V1, API Cloud Storage V1 e API Admin Cloud SQL v1beta4.
I tipi di base sono supportati da un'API RESTful che supporta le possibilità di creazione, lettura, aggiornamento e le operazioni Delete (CRUD). Puoi anche creare tipi di base aggiuntivi aggiungendo un fornitore di tipi se i tipi di proprietà di Google da soli non soddisfano per soddisfare le tue esigenze. La creazione di un provider di tipi espone tutte le risorse di un'API come base tipi che puoi utilizzare. Per creare un provider di tipi, devi fornire un Documento descrittore API, che può essere una specifica OpenAPI o un Google Discovery, modifica eventuali mappature di input necessarie per l'API e registra il tipo con Deployment Manager. Una volta creato, e gli altri utenti con accesso al tuo progetto possono usare i tipi forniti dalla o il provider di servizi di terze parti.
Quando aggiungi un provider di tipi, tutte le risorse fornite dall'API e supportate da un'interfaccia RESTful Creazione, lettura, aggiornamento ed eliminazione (CRUD) verranno esposte come tipi che puoi utilizzare nel deployment.
La creazione di un provider di tipo personalizzato è uno scenario avanzato e Google consiglia è bene eseguire questa operazione solo se si conosce bene l'API che si desidera per l'integrazione.
Per scoprire come creare un provider dei tipi, consulta Integrazione con Deployment Manager.
Quando chiami un tipo di base nei modelli o nelle configurazioni, utilizza uno dei le seguenti sintassi a seconda del tipo.
Per i tipi di base gestiti da Google, utilizza:
type: [API].[VERSION].[RESOURCE]
Ad esempio,
compute.v1.instance
.Per i provider di tipi gestiti da Google (beta), utilizza:
type: gcp-types/[PROVIDER]:[RESOURCE]
Per un elenco dei provider di tipi supportati, consulta Provider di tipi Google Cloud supportati.
Per i tipi di base forniti da un provider dei tipi, usa:
type: [PROJECT_ID]/[TYPE_PROVIDER]:[COLLECTION]
Dove
[COLLECTION]
è il percorso della risorsa API di cui eseguire il deployment.
Tipi compositi
Un tipo composito contiene uno o più modelli che sono preconfigurati per funzionare insieme. Questi modelli si espandono in un insieme dei tipi di base quando viene eseguito il deployment in un deployment. I tipi compositi sono essenzialmente modelli ospitati che puoi aggiungere a Deployment Manager. Puoi creare tipi compositi per soluzioni comuni in modo che la soluzione sia facilmente riutilizzabile, oppure creare configurazioni complesse che puoi riutilizzare in futuro.
Ad esempio, puoi creare un tipo composito che esegue il deployment di un carico di rete gruppo di istanze gestite bilanciato. Un bilanciatore del carico di rete richiede le risorse Google Cloud e alcune configurazioni tra le risorse, puoi impostare queste risorse in una configurazione una sola volta e registrare il tipo con con Deployment Manager. In seguito, tu e gli altri utenti con accesso al progetto chiamare quel tipo ed eseguirne il deployment nelle configurazioni future.
Per chiamare un tipo composito nella tua configurazione, utilizza:
type: [PROJECT_ID]/composite:[TYPE_NAME]
Ad esempio:
resources:
- name: my-composite-type
type: myproject/composite:example-composite-type
Per scoprire come creare un tipo composito, consulta Aggiunta di un tipo composto a Deployment Manager.
Manifest
Un file manifest è un oggetto di sola lettura che contiene la configurazione originale specificato, inclusi eventuali modelli importati, e contiene inoltre la dimensione creato da Deployment Manager. Ogni volta che aggiorni un deployment, Deployment Manager genera un nuovo file manifest per riflettere il nuovo stato e deployment continuo. Durante la risoluzione di un problema con un deployment, è utile per visualizzare il file manifest.
Per ulteriori informazioni, vedi Visualizzazione di un manifest.
Deployment
Un deployment è una raccolta di risorse di cui viene eseguito il deployment e che vengono gestite utilizzando una configurazione.
Per ulteriori informazioni, vedi Creazione di un deployment.
Passaggi successivi
- Consulta la guida rapida di Deployment Manager.
- Consulta la Guida passo passo.
- Scopri di più sulle configurazioni e deployment.