Grundlagen des Deployment Managers

Die folgenden Komponenten stellen die Grundlage des Deployment Managers dar.

Konfiguration

Eine Konfiguration beschreibt alle Ressourcen, die Sie für eine einzelne Bereitstellung benötigen. Bei einer Konfiguration handelt es sich um eine Datei, die in der YAML-Syntax geschrieben ist. Diese listet jede Ressource, die Sie erstellen möchten, und ihre jeweiligen Ressourceneigenschaften auf. Eine Konfiguration muss einen resources:-Abschnitt enthalten, auf den die Liste der zu erstellenden Ressourcen folgt.

Jede Ressource muss diese drei Komponenten enthalten:

  • name - Ein benutzerdefinierter String zur Identifikation dieser Ressource, beispielsweise my-vm, project-data-disk, the-test-network.
  • type - Der Typ der Ressource, die bereitgestellt wird, beispielsweise compute.v1.instance, compute.v1.disk. Die grundlegenden Ressourcentypen werden auf der Seite Konfigurationen beschrieben und aufgelistet.
  • properties - Die Parameter für diesen Ressourcentyp. Sie müssen zu den Eigenschaften für den Typ passen, beispielsweise zone: asia-east1-a, boot: true.

Dies ist eine Beispielkonfiguration:

resources:
- name: the-first-vm
  type: compute.v1.instance
  properties:
    zone: us-central1-a
    machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/f1-micro
    disks:
    - deviceName: boot
      type: PERSISTENT
      boot: true
      autoDelete: true
      initializeParams:
        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20150423
    networkInterfaces:
    - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default
      accessConfigs:
      - name: External NAT
        type: ONE_TO_ONE_NAT

Vorlagen

Eine Konfiguration kann Vorlagen enthalten. Diese sind wesentliche Teile einer Konfigurationsdatei und werden in einzelne Blöcke abstrahiert. Nachdem Sie eine Vorlage erstellt haben, können Sie diese nach Bedarf in allen Bereitstellungen wiederverwenden. Wenn Sie feststellen, dass Sie Konfigurationen neu schreiben, die sehr ähnliche Eigenschaften aufweisen, können Sie die gemeinsam genutzten Teile in Vorlagen umwandeln. Vorlagen sind viel flexibler als einzelne Konfigurationsdateien und sollen eine einfache Portierbarkeit in Bereitstellungen unterstützen.

Eine Vorlage ist eine Datei, die entweder in Python oder Jinja2 geschrieben wird. Das System von Deployment Manager interpretiert jede Vorlage rekursiv und fügt die Ergebnisse direkt in die Konfigurationsdatei ein. Die Interpretation des Inhalts muss also in derselben YAML-Syntax für Ressourcen erfolgen, die oben für die Konfigurationsdatei selbst definiert wurde.

Wie eine einfache Vorlage erstellt wird, erfahren Sie unter Grundlegende Vorlage erstellen.

Konfigurationen werden als vollständig erweitert oder nicht erweitert beschrieben. Eine vollständig erweiterte Konfiguration enthält alle Ressourcen und Eigenschaften der Bereitstellung, einschließlich aller Inhalte von importierten Vorlagendateien. Beispiel: Sie würden eine nicht erweiterte Konfiguration bereitstellen, wenn Sie diese Vorlage verwenden:

imports:
- path: vm_template.jinja

resources:
- name: vm-instance
  type: vm_template.jinja
  properties:
    zone: us-central1-a
    project: myproject

Nach der Erweiterung enthält Ihre Konfigurationsdatei den Inhalt aller Ihrer Vorlagen und sieht aus wie folgt:

resources:
- name: the-first-vm
  type: compute.v1.instance
  properties:
    zone: us-central1-a
    machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/f1-micro
    disks:
    - deviceName: boot
      type: PERSISTENT
      boot: true
      autoDelete: true
      initializeParams:
        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20150423
        networkInterfaces:
        - network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default
    accessConfigs:
    - name: External NAT
      type: ONE_TO_ONE_NAT

Ressource

Eine Ressource stellt eine einzelne API-Ressource dar. Dies kann eine API-Ressource sein, die von einem von Google verwalteten Basistyp oder von einem Typanbieter bereitgestellt wird. Beispielsweise ist eine Compute Engine-Instanz oder eine Cloud SQL-Instanz eine einzelne Ressource.

Um eine Ressource anzugeben, legen Sie einen Typ für diese Ressource fest. Im nachstehenden Abschnitt "Typen" erhalten Sie nähere Informationen hierzu.

Typen

Um eine Ressource in Deployment Manager zu erstellen, müssen Sie einen type festlegen. Ein Typ kann eine einzelne API-Ressource darstellen. Dabei handelt es sich um einen Basistyp. Er kann aber auch einen Satz von Ressourcen darstellen und wird dann als zusammengesetzter Typ bezeichnet. Alle so festgelegten Ressourcen werden als Teil der Bereitstellung erstellt.

So erstellen Sie beispielsweise eine Compute Engine-VM-Instanz, indem Sie den entsprechenden Basistyp in Ihrer Konfiguration angeben:

resources:
- name: the-first-vm
  type: compute.v1.instance # The type of resource to deploy
  ...

Deployment Manager enthält eine Liste der Basistypen, die von Google verwaltet werden, und die Sie sofort verwenden können. Eine Liste dieser Typen finden Sie unter Unterstützte Ressourcentypen und -eigenschaften.

Basistypen und Typanbieter

Ein Basistyp erstellt eine einzelne einfache Ressource. Beispiel: compute.v1.instance, storage.v1.bucket und sqladmin.v1beta4.database sind Google-eigene Basistypen. Diese Basistypen werden alle von den entsprechenden APIs, der Compute Engine V1 API, Cloud Storage V1 API und der Cloud SQL V1Beta4 Admin API, verarbeitet.

Basistypen werden auch von einer RESTful API unterstützt, die CRUD-Vorgänge (Create, Read, Update und Delete = Erstellen, Lesen, Aktualisieren und Löschen) unterstützt. Sie können zusätzliche Basistypen erstellen, indem Sie einen Typanbieter hinzufügen, wenn die Google-eigenen Typen alleine nicht Ihren Anforderungen entsprechen. Bei der Erstellung eines Typanbieters werden alle Ressourcen einer API als Basistypen verfügbar gemacht, die Sie verwenden können. Um einen Typanbieter zu erstellen, müssen Sie ein API-Deskriptordokument bereitstellen. Dabei kann es sich um eine OpenAPI-Spezifikation oder ein Google Discovery-Dokument handeln. Außerdem müssen Sie die erforderlichen Eingabezuordnungen für die API liefern und den Typ in Deployment Manager registrieren. Sobald ein Typanbieter einmal erstellt wurde, können Sie und andere Nutzer mit Zugriff auf Ihr Projekt alle Typen verwenden, die vom Typanbieter bereitgestellt werden.

Wenn Sie einen Typanbieter hinzufügen, werden alle Ressourcen, die von der API bereitgestellt und von der RESTful-Schnittstelle mit CRUD-Vorgängen unterstützt werden, als Typen in Ihrer Bereitstellung angezeigt und können von Ihnen verwendet werden.

Einen eigenen Typ zu erstellen, erfordert fortgeschrittene Kenntnisse. Google empfiehlt dies nur für den Fall, dass Sie sehr gut mit der API vertraut sind, die Sie integrieren möchten.

Weitere Informationen zur Erstellung eines Typanbieters finden Sie unter Kurzanleitung zum Hinzufügen einer API.

Wenn Sie einen Basistyp in Ihren Vorlagen oder Konfigurationen aufrufen möchten, verwenden Sie je nach Typ eine der folgenden Syntaxen.

  • Für von Google verwaltete Basistypen verwenden Sie:

    type: [API].[VERSION].[RESOURCE]
    

    Beispiel: compute.v1.instance.

  • Für Basistypen, die durch einen Typanbieter bereitgestellt werden, verwenden Sie:

    type: [PROJECT_ID]/[TYPE_PROVIDER]:[COLLECTION]
    

    Wobei [COLLECTION] der Pfad zur bereitzustellenden API-Ressource ist. Weitere Informationen finden Sie unter Typanbieter.

Zusammengesetzte Typen

Ein zusammengesetzter Typ enthält eine oder mehrere Vorlagen, die für die Zusammenarbeit vorkonfiguriert sind. Diese Vorlagen können in einer Bereitstellung zu einem Satz von Basistypen erweitert werden. Zusammengesetzte Typen sind im Wesentlichen gehostete Vorlagen, die Sie Deployment Manager hinzufügen können. Sie können zusammengesetzte Typen für gemeinsame Lösungen erstellen, damit die Lösung einfach wiederverwendbar ist. Auch komplexere Konfigurationen sind für eine künftige Wiederverwendung möglich.

Beispiel: Sie können einen zusammengesetzten Typ erstellen, der eine Instanzgruppe zum Netzwerklastenausgleich bereitstellt. Ein Netzwerklastenausgleich erfordert mehrere Google Cloud Platform-Ressourcen und einige Konfigurationen zwischen den Ressourcen. Sie können also diese Ressourcen in einer Konfiguration einmalig einrichten und diesen Typ dann in Deployment Manager registrieren. Anschließend können Sie und andere Nutzer mit Zugriff auf Ihr Projekt diesen Typ aufrufen und in zukünftigen Konfigurationen verwenden.

So rufen Sie einen zusammengesetzten Typ in Ihrer Konfiguration auf:

type: [PROJECT_ID]/composite:[TYPE_NAME]

Beispiel:

resources:
- name: my-composite-type
  type: myproject/composite:example-composite-type

Weitere Informationen zur Erstellung eines zusammengesetzten Typs finden Sie unter Zusammengesetzten Typ in Deployment Manager hinzufügen.

Manifest

Ein Manifest ist ein schreibgeschütztes Objekt, dass die ursprüngliche Konfiguration von Ihnen, einschließlich importierter Vorlagen, und die vollständig expandierte, von Deployment Manager erstellte Ressourcenliste beinhaltet. Immer dann, wenn Sie eine Bereitstellung aktualisieren, erstellt Deployment Manager eine neue Manifest-Datei, um den neuen Status der Bereitstellung widerzuspiegeln. Wenn ein Problem einer Bereitstellung gelöst werden soll, ist es nützlich, das Manifest zu betrachten.

Weitere Informationen finden Sie unter Manifest ansehen.

Bereitstellung

Eine Bereitstellung ist eine Sammlung von Ressourcen, die unter Verwendung einer Konfiguration zusammen bereitgestellt und verwaltet werden.

Weitere Informationen erhalten Sie unter Bereitstellung erstellen.

Nächste Schritte

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Cloud Deployment Manager-Dokumentation