Deployments mit gcloud oder der API erstellen

Auf dieser Seite wird beschrieben, wie Sie ein Deployment 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 Platform-Diensten beinhalten. Wenn Sie ein Deployment erstellen, erstellt Deployment Manager alle beschriebenen Ressourcen in den jeweiligen Google Cloud Platform 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.
  • Eine Konfiguration erstellen.

Deployment erstellen

Wenn Sie ein Deployment erstellen, erstellen Sie eine Deployment-Ressource, die eine Sammlung von Ressourcen beinhaltet. Jede Ressource ist explizit in einer Konfiguration definiert, die Sie mit der Anfrage angeben.

gcloud

Verwenden Sie den Befehl deployments create des gcloud-Befehlszeilentools:

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

Eine Liste der Deployments finden Sie in der Cloud Console, der API oder dem gcloud-Befehlszeilentool.

Console

Rufen Sie in der Cloud Console die Seite Deployments auf.

gcloud

Verwenden Sie den Unterbefehl deployments list des gcloud-Befehlszeilentools:

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