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. In ihr sind alle Ressourcen, die Sie erstellen möchten, mit ihren jeweiligen Ressourcenattributen aufgelistet. Eine Konfiguration muss einen resources:
-Abschnitt enthalten, auf den die Liste der zu erstellenden Ressourcen folgt.
Jede Ressource muss diese drei Komponenten enthalten:
name
Benutzerdefinierter String zur Identifikation dieser Ressource, z. B.my-vm
,project-data-disk
oderthe-test-network
.type
: Der Typ der bereitgestellten Ressource wiecompute.v1.instance
,compute.v1.disk
. Die grundlegenden Ressourcentypen sind auf der Seite Unterstützte Ressourcentypen aufgeführt und werden dort beschrieben.properties
: Die Parameter für diesen Ressourcentyp. Sie müssen den Attributen für den Typ entsprechen, beispielsweisezone: asia-east1-a
oderboot: 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 Vorlagendatei wird entweder in Python oder Jinja2 geschrieben. Das System von Deployment Manager interpretiert jede Vorlage rekursiv und fügt die Ergebnisse direkt in die Konfigurationsdatei ein. Somit führt die Interpretation jeder Vorlage am Ende zur gleichen YAML-Syntax für Ressourcen wie die oben für die Konfigurationsdatei selbst definierte.
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 ein type
angeben. 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. Zu den Basistypen von Google gehören beispielsweise compute.v1.instance
, storage.v1.bucket
und sqladmin.v1beta4.database
, die alle von der Compute Engine V1 API, der Cloud Storage V1 API und der Cloud SQL v1beta4 Admin API bereitgestellt werden.
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. Damit Sie einen Typanbieter erstellen können, müssen Sie ein API-Deskriptor-Dokument bereitstellen, z. B. eine OpenAPI-Spezifikation oder Google Discovery, alle erforderlichen Eingabezuordnungen für die API anpassen und den Typ bei 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.
Es erfordert fortgeschrittene Kenntnisse, um einen eigenen Typanbieter zu erstellen. Google empfiehlt dies nur für den Fall, dass Sie sehr gut mit der API vertraut sind, die Sie integrieren möchten.
Informationen zur Erstellung eines Typanbieters finden Sie unter Integration mit Deployment Manager.
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]
z. B.
compute.v1.instance
.Für von Google verwaltete Typanbieter (Beta) verwenden Sie:
type: gcp-types/[PROVIDER]:[RESOURCE]
Eine Liste der unterstützten Typanbieter finden Sie unter Unterstützte Google Cloud-Typanbieter.
Für Basistypen, die durch einen Typanbieter bereitgestellt werden, verwenden Sie:
type: [PROJECT_ID]/[TYPE_PROVIDER]:[COLLECTION]
Dabei ist
[COLLECTION]
der Pfad zur bereitzustellenden API-Ressource.
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-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.
Weitere Informationen
- Deployment Manager-Schnellstartanleitung durcharbeiten.
- Schritt-für-Schritt-Anleitung ausführen
- Weitere Informationen über Konfigurationen und Bereitstellungen