In questa pagina viene descritto come creare un deployment. Un deployment è un'indicazione di un insieme di risorse definite in una configurazione. Per creare il deployment, devi fornire una configurazione valida. Un deployment può contenere una serie di risorse, in una varietà di servizi Google Cloud Platform. Quando crei un deployment, Deployment Manager crea tutte le risorse descritte nelle rispettive API di Google Cloud Platform.
Prima di iniziare
- Se vuoi utilizzare gli esempi a 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.
- Crea una configurazione.
Creazione di un deployment
Quando crei un deployment, stai creando una risorsa di deployment che contiene una raccolta di risorse. Ogni risorsa viene definita in modo esplicito in una configurazione da te fornita 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 tuo file di configurazione YAML.
Per impostazione predefinita, se la configurazione include risorse che si trovano già 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 sui criteri che è possibile utilizzare durante la creazione di deployment, consulta la sezione Impostare il criterio per la creazione di risorse.
Se il deployment è stato creato correttamente, puoi visualizzarne la descrizione:
gcloud deployment-manager deployments describe my-first-deployment
API
Nell'API, esegui una richiesta insert()
con la configurazione 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 modelli, devi anche specificare questi 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"
}
]
}
}
Impostazione del criterio per la creazione di risorse
Quando crei un nuovo deployment, se nel progetto esiste già una risorsa che vuoi creare, questa viene acquisita dal deployment.
In questi casi, Deployment Manager non crea una nuova risorsa.
Se non vuoi acquisire una risorsa esistente, devi utilizzare il criterio CREATE
per il deployment.
Puoi utilizzare i seguenti criteri per creare le risorse:
CREATE_OR_ACQUIRE
- [Predefinito] Deployment Manager acquisisce le risorse esistenti nel progetto o crea risorse se non esistono. Per acquisire una risorsa, Deployment Manager controlla la configurazione per verificare le proprietà della risorsa che stai tentando di creare. Se esiste una risorsa esistente con le stesse proprietà, Deployment Manager acquisisce la risorsa come parte del deployment.Le proprietà controllate da Deployment Manager dipendono dal tipo di risorsa che stai creando e potrebbero includere:
- Il
name
della risorsa - Il
type
della risorsa - Il
zone
o laregion
della risorsa, se applicabile
Le proprietà fanno parte dell'URL per la richiesta API
GET
per la risorsa. Per vedere quali proprietà vengono utilizzate da Deployment Manager per acquisire una risorsa, consulta la documentazione dell'API per il metodoGET
della risorsa. Ad esempio, per le istanze Compute Engine, l'URL della richiesta per il metodoinstances.get
includeresourceId
(name
nella configurazione),zone
eproject
.- Il
CREATE
- Deployment Manager crea 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 il criterio
ACQUIRE
se nel progetto sono già presenti diverse risorse e vuoi gestirle insieme, come un unico deployment.Nel modello o nella configurazione, devi fornire le proprietà richieste per le risorse, come se le creassi. Se una qualsiasi risorsa della configurazione non esiste nel progetto, il deployment non riesce.
Elencare i deployment
Visualizza un elenco dei tuoi deployment in Google Cloud Console, nell'API o in Google Cloud CLI.
Console
Vai alla pagina Deployment in Google Cloud Console.
gcloud
Con Google Cloud CLI, utilizza il sottocomando deployments list
:
gcloud deployment-manager deployments list
API
Nell'API, esegui una richiesta GET
vuota alla raccolta Deployment:
GET https://www.googleapis.com/deploymentmanager/v2beta1/projects/myproject/global/deployments