Deployments mit gcloud oder der API erstellen

Auf dieser Seite wird beschrieben, wie Sie eine Bereitstellung erstellen. Ein Deployment ist eine Instanziierung einer Reihe von Ressourcen, die in einer Konfiguration definiert sind. Geben Sie eine gültige Konfiguration in der Anfrage an, um das Deployment zu erstellen. Ein Deployment kann eine Anzahl von Ressourcen von einer Vielzahl an Google Cloud-Diensten beinhalten. Wenn Sie ein Deployment erstellen, erstellt Deployment Manager alle beschriebenen Ressourcen in den jeweiligen Google Cloud APIs.

Hinweise

  • Wenn Sie die Befehlszeilenbeispiele in dieser Anleitung verwenden möchten, installieren Sie das gcloud-Befehlszeilentool.
  • Wenn Sie die API-Beispiele in dieser Anleitung verwenden möchten, richten Sie den API-Zugriff ein.
  • Erstellen Sie eine Konfiguration.

Bereitstellung erstellen

Wenn Sie eine Bereitstellung erstellen, erstellen Sie eine Bereitstellungsressource, die eine Sammlung an Ressourcen beinhaltet. Jede Ressource ist explizit in einer Konfiguration definiert, die Sie mit der Anfrage angeben.

gcloud

Verwenden Sie in der Google Cloud CLI den Befehl deployments create:

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

Das Flag --config ist ein relativer Pfad zu Ihrer YAML-Konfigurationsdatei.

Wenn Ihre Konfiguration Ressourcen enthält, die sich bereits in Ihrem Projekt befinden, werden diese Ressourcen standardmäßig vom Deployment übernommen und können mithilfe des Deployments verwaltet werden. Wenn Sie keine Ressource übernehmen möchten, müssen Sie wie im folgenden gcloud beta-Befehl die Option --create-policy verwenden:

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

Informationen zu den Richtlinien, die Sie beim Erstellen von Deployments verwenden können, finden Sie unter Richtlinie zum Erstellen von Ressourcen festlegen.

Wenn Ihre Bereitstellung erfolgreich erstellt wurde, können Sie eine Beschreibung Ihrer Bereitstellung erhalten.

gcloud deployment-manager deployments describe my-first-deployment

API

Stellen Sie in der API eine insert()-Anfrage und geben Sie im Anfragetext die Konfiguration an:

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"
  }
 }
}

Wenn Sie Vorlagen importieren, müssen Sie auch diese Vorlagen als Teil des Anfragetexts angeben. Beispiel: Die folgende API-Anfrage importiert eine Vorlage mit dem Namen vm_template.jinja als target:

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"
   }
  ]
 }
}

Richtlinie zum Erstellen von Ressourcen festlegen

Wenn Sie ein neues Deployment erstellen und eine zu erstellende Ressource bereits in Ihrem Projekt vorhanden ist, wird diese vom Deployment übernommen. In diesem Fall wird in Deployment Manager keine neue Ressource erstellt. Falls Sie die vorhandene Ressource nicht übernehmen möchten, verwenden Sie in Ihrer Konfiguration die Richtlinie CREATE für das Deployment.

Sie können zum Erstellen der Ressourcen die folgenden Richtlinien verwenden:

  • CREATE_OR_ACQUIRE: [Standard] Deployment Manager übernimmt im Projekt vorhandene Ressourcen oder erstellt neue Ressourcen, wenn es sie noch nicht gibt. Zur Übernahme einer Ressource überprüft Deployment Manager Ihre Konfiguration auf die Attribute der Ressource, die Sie erstellen möchten. Wenn eine Ressource mit diesen Attributen bereits vorhanden ist, übernimmt Deployment Manager diese Ressource in Ihr Deployment.

    Welche Attribute vom Deployment Manager überprüft werden, hängt vom Typ der Ressource ab, die Sie erstellen. Beispielsweise sind folgende möglich:

    • Der name der Ressource
    • Der type der Ressource
    • Die zone oder region der Ressource, sofern zutreffend

    Die Attribute sind Teil der URL für die API-Anfrage GET für die Ressource. Welche Attribute Deployment Manager für die Übernahme einer Ressource verwendet, ist in der API-Dokumentation für die Methode GET der Ressource aufgeführt. Für Compute Engine-Instanzen umfasst die Anfrage-URL für die Methode instances.get die resourceId (name in Ihrer Konfiguration), die zone und das project.

  • CREATE: In Deployment Manager werden noch nicht vorhandene Ressourcen erstellt. Wenn eine Ressource in Ihrer Konfiguration bereits im Projekt vorhanden ist, schlägt das Deployment fehl.

  • ACQUIRE: In Deployment Manager werden Ressourcen übernommen, die bereits vorhanden sind. Es gelten die gleichen Kriterien wie für CREATE_OR_ACQUIRE.

    Wenn Ihr Projekt bereits Ressourcen enthält, die Sie zusammen als ein Deployment verwalten möchten, verwenden Sie die Richtlinie ACQUIRE.

    Sie müssen in Ihrer Vorlage oder Konfiguration die erforderlichen Attribute für diese Ressourcen wie bei einer Erstellung angeben. Wenn eine der Ressourcen in der Konfiguration noch nicht im Projekt vorhanden ist, schlägt das Deployment fehl.

Ihre Deployments auflisten

Sie können sich eine Liste Ihrer Deployments mithilfe der Google Cloud Console, der API oder der Google Cloud CLI ansehen.

Console

Rufen Sie in der Google Cloud Console die Seite Deployments auf.

gcloud

Verwenden Sie in der Google Cloud CLI den Unterbefehl deployments list:

gcloud deployment-manager deployments list

API

Stellen Sie in der API eine leere GET-Anfrage an die Deployments-Sammlung:

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

Nächste Schritte