Questa pagina descrive come creare un deployment. Un deployment è un' istanza di un insieme di risorse definite in una configurazione. Fornisci una configurazione valida nella richiesta di creazione del deployment. Un deployment può contenere un numero di risorse, in una varietà di Google Cloud servizi. Quando crei un deployment, Deployment Manager crea tutte le risorse descritte nelle rispettive Google Cloud API.
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 alle API.
- Crea una configurazione.
Creazione di un deployment
Quando crei un deployment, crei una risorsa di tipo Deployment che contiene una raccolta di risorse. Ogni risorsa è definita in modo esplicito in una configurazione che fornisci nella richiesta.
gcloud
Con Google Cloud CLI, utilizza il comando deployments create:
gcloud deployment-manager deployments create my-first-deployment \
--config vm.yaml
Il flag --config è un percorso relativo al file di configurazione YAML.
Per impostazione predefinita, se la configurazione include risorse già presenti nel progetto, queste vengono acquisite dal deployment e possono essere gestite utilizzando il deployment. Se non vuoi acquisire una risorsa, devi utilizzare l'opzione --create-policy, come nel seguente comando gcloud beta:
gcloud beta deployment-manager deployments create my-first-deployment \
--config vm.yaml --create-policy CREATE
Per informazioni sulle policy che puoi utilizzare quando crei i deployment, consulta Impostare la policy per la creazione delle risorse.
Se il deployment viene creato correttamente, puoi ottenere una descrizione del deployment:
gcloud deployment-manager deployments describe my-first-deployment
API
Nell'API, effettua una insert()
richiesta con la configurazione fornita in linea, nel corpo della richiesta:
POST https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments
{
"name": "example-config-with-templates",
"target": {
"config": {
"content": "resources:\n- name: vm-created-by-cloud-config\n type: compute.v1.instance\n properties:\n zone: us-central1-a\n machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\n disks:\n - deviceName: boot\n type: PERSISTENT\n boot: true\n autoDelete: true\n initializeParams:\n diskName: disk-created-by-cloud-config\n sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20151104\n networkInterfaces:\n - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default\n"
}
}
}
Se importi i modelli, devi fornire anche quei
modelli come parte del corpo della richiesta. Ad esempio, la seguente richiesta API ha un target che importa un modello denominato vm_template.jinja:
POST https://www-www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments
{
"name": "my-example-config-with-templates-2",
"target": {
"config": {
"content": "imports:\n- path: vm_template.jinja\n\nresources:\n- name: my-vm\n type: vm_template.jinja"
},
"imports": [
{
"content": "resources:\n- name: vm-created-by-cloud-config\n type: compute.v1.instance\n properties:\n zone: us-central1-a\n machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/n1-standard-1\n disks:\n - deviceName: boot\n type: PERSISTENT\n boot: true\n autoDelete: true\n initializeParams:\n diskName: disk-created-by-cloud-config\n sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20151104\n networkInterfaces:\n - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default",
"name": "vm_template.jinja"
}
]
}
}
Impostare la policy per la creazione delle risorse
Quando crei un nuovo deployment, se una risorsa che vuoi creare esiste già nel tuo progetto, viene acquisita dal deployment.
In questi casi, Deployment Manager non crea una nuova risorsa.
Se non vuoi acquisire una risorsa esistente, devi utilizzare la policy CREATE per il deployment.
Puoi utilizzare le seguenti policy per creare le risorse:
CREATE_OR_ACQUIRE- [Predefinita] Deployment Manager acquisisce le risorse esistenti nel progetto o le crea se non esistono. Per acquisire una risorsa, Deployment Manager controlla la configurazione per le proprietà della risorsa che stai tentando di creare. Se esiste una risorsa con le stesse proprietà, Deployment Manager la acquisisce come parte del deployment.Le proprietà che Deployment Manager controlla dipendono dal tipo di risorsa che stai creando e potrebbero includere:
- Il
namedella risorsa - Il
typedella risorsa - La
zoneo laregiondella risorsa, se applicabile
Le proprietà fanno parte dell'URL della richiesta API
GETper la risorsa. Per vedere quali proprietà utilizza Deployment Manager per acquisire una risorsa, consulta la documentazione dell'API per il metodoGETdella risorsa. Ad esempio, per le istanze di Compute Engine, l'URL della richiesta perinstances.getmetodo includeresourceId(namenella configurazione),zoneeproject.- Il
CREATE- Deployment Manager crea le risorse che non esistono. Se una delle risorse nella configurazione esiste già nel progetto, il deployment non riesce.ACQUIRE- Deployment Manager acquisisce le risorse già esistenti, utilizzando gli stessi criteri diCREATE_OR_ACQUIRE.Utilizza la policy
ACQUIREse hai già un numero di risorse nel tuo progetto e vuoi gestirle insieme, come un singolo deployment.Nel modello o nella configurazione, devi fornire le proprietà richieste per queste risorse come se le stessi creando. Se una delle risorse nella configurazione non esiste nel progetto, il deployment non riesce.
Elenco dei deployment
Visualizza un elenco dei deployment nella console Google Cloud console, nell'API, o in Google Cloud CLI.
Console
Vai alla pagina Deployment nella Google Cloud console.
gcloud
Con Google Cloud CLI, utilizza il sottocomando deployments list:
gcloud deployment-manager deployments list
API
Nell'API, effettua una richiesta GET vuota alla raccolta Deployments:
GET https://www.googleapis.com/deploymentmanager/v2beta1/projects/myproject/global/deployments
Passaggi successivi
- Aggiungi etichette al deployment.
- Aggiorna il deployment.