Creazione di un deployment mediante gcloud o API

Questa pagina descrive come creare un deployment. Un deployment è e creazione di un'istanza di un insieme di risorse definite configurazione. Fornisci una configurazione valida nella richiesta per creare il deployment. Un deployment può contenere un numero di risorse in una serie di servizi Google Cloud. Quando crei un deployment, Deployment Manager crea tutte le risorse descritte nelle rispettive API di Google Cloud.

Prima di iniziare

Creazione di un deployment

Quando crei un deployment, crei anche Risorsa di deployment che contiene una raccolta di risorse. Ogni risorsa è definita esplicitamente in una configurazione da te indicata 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 utilizzandolo. Se non vuoi acquisire una risorsa, devi utilizzare l'opzione --create-policy, come nei seguenti gcloud beta :

gcloud beta deployment-manager deployments create my-first-deployment \
    --config vm.yaml --create-policy CREATE

Per informazioni sui criteri che puoi utilizzare durante la creazione consulta la sezione Impostare il criterio per la creazione di risorse.

Se il deployment viene creato correttamente, puoi visualizzarne una descrizione:

gcloud deployment-manager deployments describe my-first-deployment

API

Nell'API, crea una insert() 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 modelli, è necessario fornire anche questi nel corpo della richiesta. Ad esempio, la seguente richiesta API contiene 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 delle risorse

Quando crei un nuovo deployment, se una risorsa che vuoi creare esiste già nel progetto, viene acquisita dal deployment. In questi casi, Deployment Manager non crea una nuova risorsa. Se non vuoi acquisire una risorsa esistente, deve utilizzare il criterio CREATE per il deployment.

Puoi utilizzare i seguenti criteri per creare le risorse:

  • CREATE_OR_ACQUIRE - [Predefinito] Deployment Manager acquisisce risorse esistenti nel progetto o crea risorse se non sono esistono. Per acquisire una risorsa, Deployment Manager controlla la configurazione per verificare la presenza delle proprietà della risorsa che stai tentando di creare. Se esiste un risorsa esistente con le stesse proprietà, Deployment Manager acquisisce della risorsa come parte del deployment.

    Le proprietà controllate da Deployment Manager dipendono dal tipo di risorsa che stai creando e possono includere:

    • Il name della risorsa
    • Il type della risorsa
    • Il zone o il region della risorsa, se applicabile

    Le proprietà fanno parte dell'URL della richiesta API GET relativa alla risorsa. Per sapere quali proprietà vengono utilizzate da Deployment Manager per acquisire una risorsa, consulta la documentazione dell'API per il metodo GET della risorsa. Ad esempio, per le istanze Compute Engine, l'URL di richiesta per il metodo instances.get include resourceId (name nella configurazione), zone e project.

  • CREATE - Deployment Manager crea risorse che non esistono. Se alcune delle risorse nella configurazione esistono già nel progetto, il deployment non va a buon fine.

  • ACQUIRE - Deployment Manager acquisisce risorse già esistenti, utilizzando gli stessi criteri di CREATE_OR_ACQUIRE.

    Utilizza il criterio ACQUIRE se hai già una serie di risorse nel tuo e vuoi gestirli tutti insieme come un unico deployment.

    Nel modello o nella configurazione, devi fornire gli elementi di queste risorse, come se le creassi. Se una delle risorse nella configurazione non esiste nel progetto, il deployment non va a buon fine.

Elenco dei deployment

Visualizza un elenco dei tuoi deployment nella console Google Cloud. , l'API, oppure Google Cloud CLI.

Console

Vai alla pagina Deployment nella console Google Cloud.

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 Deployment:

GET https://www.googleapis.com/deploymentmanager/v2beta1/projects/myproject/global/deployments

Passaggi successivi