In diesem Dokument wird beschrieben, wie externe Vorlagen, die im Internet statt auf Ihrer lokalen Maschine gehostet werden, in Ihrer Bereitstellung verwendet werden.
Sie können Vorlagen bei einem externen Host überall im Internet speichern und diese Vorlagen von Ihrer Konfiguration aus aufrufen. Vorlagen extern zu hosten bietet gewisse Vorteile gegenüber der lokalen Speicherung:
- Vorlagen einfach für andere freigeben
- Die Sicherheit, dass Konfigurationen immer die aktuellste Vorlage verwenden
- Relevante Schemas und Importe automatisch verwalten
Deployment Manager bezieht immer die aktuellste Version einer externen Vorlage, wenn Sie Ihre Konfiguration neu bereitstellen. Wenn Sie Ihre Vorlagen pflegen, werden ihre Bereitstellungen automatisch auf dem neuesten Stand sein. Deployment Manager verarbeitet auch den Import anderer abhängiger Vorlagen für Sie, wenn in der externen Vorlage auf sie verwiesen wird.
Beispiel
Diese Konfiguration importiert eine externe Vorlage:
resources:
- name: my-frontend
type: gs://my-frontend-templates/webserver-frontend.jinja
Hinweis
- 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.
- Lesen Sie die Konfigurations-Dokumentation.
- Lesen Sie die Vorlagen-Dokumentation.
Externe Vorlagen hosten
Sie können externe Vorlagen in Google Cloud Storage oder an einem öffentlich zugänglichen Speicherplatz, wie GitHub, hosten. Solange es eine URL zu der Datei gibt und Sie Zugriff auf die Vorlagen haben, kann Deployment Manager sie herunterladen. Falls die Datei ein Schema zum Import anderer Vorlagen verwendet, müssen Sie diese Vorlagen in der gleichen Basis-URL hosten.
Auf Google Cloud Storage
So hosten Sie Vorlagen in Google Cloud Storage:
- Erstellen Sie einen Bucket für die Vorlagen oder verwenden Sie einen bestehenden Bucket.
- Laden Sie Ihre Vorlagen und zugehörige Vorlagendateien wie Schemas in den Bucket.
- Wenn Sie die Vorlagen von einem anderen Google Cloud Platform-Projekt verwenden möchten, als dem, zu dem die Vorlagen gehören, stellen Sie die Zugriffssteuerung so ein, dass der Zugriff erlaubt ist.
Wenn Sie Vorlagen in Google Cloud Storage hosten, können Sie festlegen, wer Zugriff auf die Vorlagen hat. Dazu können Sie die Optionen zur Zugriffssteuerung für den entsprechenden Cloud Storage-Bucket oder die bestimmte Vorlage festlegen.
Im Gegensatz dazu müssen Vorlagen, die auf anderen, öffentlich zugänglichen URLs gehostet werden, allgemein verfügbar sein.
Auf einer öffentlich zugänglichen URL
Alternativ können Sie externe Vorlagen außerhalb von Google Cloud Storage hosten, solange die Vorlagen öffentlich zugänglich sind. Beispielsweise können Sie Vorlagen auf GitHub hosten und mit der GitHub-URL auf die Vorlagen verweisen.
Speziell für GitHub müssen Sie die unveränderte GitHub-URL angeben, sodass Deployment Manager die Vorlage statt der HTML-Seite von GitHub bezieht. Eine unveränderte URL sieht beispielsweise so aus:
https://raw.githubusercontent.com/GoogleCloudPlatform/deploymentmanager-samples/master/examples/v2/single_vm/jinja/vm_template.jinja
Eine externe Vorlage aufrufen
Eine externe Vorlage wird so aufgerufen wie eine lokale Vorlage. Als Typ muss dabei aber die vollständige URL zu der Vorlage angegeben werden. Beispiel:
resources:
- name: my-salt-cluster
type: gs://v2/saltstack/salt_cluster.jinja
Für eine GitHub-URL:
resources:
- name: my-salt-cluster
type: https://raw.githubusercontent.com/GoogleCloudPlatform/deploymentmanager-samples/master/examples/v2/single_vm/vm_template.jinja
Falls eine externe Vorlage andere Vorlagen importiert oder falls es ein begleitendes Schema gibt, können Sie die zugehörigen Dateien im gleichen Verzeichnis oder verwandten Unterverzeichnis speichern und diese anderen Vorlagen mit einer relativen URL einbeziehen.
Falls Ihre Konfiguration beispielsweise so aussieht:
resources:
- name: my-salt-cluster
type: gs://v2/saltstack/salt_cluster.jinja
Außerdem gab es eine Schemadatei mit dem Namen salt_cluster.jinja.schema
, die diese Dateien importierte:
imports:
- path: minion.py
- path: master.py
- path: examples/source/example.py
Deployment Manager lädt automatisch alle notwendigen Dateien für diese Vorlage herunter und importiert sie.