Menyimpan Template di Host Eksternal

Dokumen ini menjelaskan cara menggunakan template eksternal dalam deployment Anda yang dihosting di suatu tempat di Internet, bukan di komputer lokal Anda.

Anda dapat menyimpan template di host eksternal di mana saja di Internet dan memanggil template ini dari dalam konfigurasi Anda. Hosting template secara eksternal memiliki keunggulan tertentu dibandingkan menyimpan template secara lokal:

  • Membagikan template dengan mudah kepada orang lain
  • Memastikan konfigurasi selalu menggunakan template terbaru
  • Mengelola impor dan skema yang relevan secara otomatis

Deployment Manager selalu mengambil template eksternal versi terbaru setiap kali Anda men-deploy ulang konfigurasi. Jika Anda mengelola template, deployment Anda juga akan selalu terbaru. Deployment Manager juga akan menangani impor template dependen lainnya untuk Anda jika template tersebut dirujuk dalam template eksternal.

Contoh

Konfigurasi ini mengimpor template eksternal:

resources:
- name: my-frontend
  type: gs://my-frontend-templates/webserver-frontend.jinja

Sebelum memulai

Menghosting template eksternal

Anda dapat menghosting template eksternal di Google Cloud Storage atau di lokasi yang dapat diakses secara publik, seperti GitHub. Selama ada URL ke file dan Anda memiliki akses ke template, Deployment Manager akan dapat mendownloadnya. Jika file menggunakan skema untuk mengimpor template lain, Anda juga harus menghosting template tersebut di URL dasar yang sama.

Di Google Cloud Storage

Untuk menghosting template di Google Cloud Storage:

  1. Buat bucket untuk template, atau gunakan bucket yang ada.
  2. Upload template dan file template terkait, seperti skema, ke bucket.
  3. Jika Anda berencana menggunakan template dari project Google Cloud Platform yang berbeda dengan project tempat template berada, tetapkan kontrol akses untuk mengizinkan akses tersebut.

Dengan menghosting template di Google Cloud Storage, Anda dapat mengontrol siapa yang memiliki akses ke template karena Anda dapat menetapkan opsi kontrol akses di masing-masing bucket Cloud Storage atau template tertentu.

Sebaliknya, menghosting template di URL lain yang dapat diakses secara publik mengharuskan Anda menyediakan template secara luas.

Di URL yang dapat diakses secara publik

Atau, Anda dapat menghosting template eksternal di luar Google Cloud Storage, asalkan template tersebut dapat diakses secara publik. Misalnya, Anda dapat menghosting template di GitHub dan mereferensikan template menggunakan URL GitHub.

Khusus untuk GitHub, Anda harus memberikan URL GitHub mentah sehingga Deployment Manager mendapatkan template, bukan halaman GitHub HTML. Misalnya, URL mentah akan terlihat seperti ini:

https://raw.githubusercontent.com/GoogleCloudPlatform/deploymentmanager-samples/master/examples/v2/single_vm/jinja/vm_template.jinja

Memanggil template eksternal

Panggil template eksternal seperti yang Anda lakukan pada template lokal, tetapi berikan URL lengkap ke file template sebagai jenisnya. Contoh:

resources:
- name: my-salt-cluster
  type: gs://v2/saltstack/salt_cluster.jinja

Untuk URL GitHub:

resources:
- name: my-salt-cluster
  type: https://raw.githubusercontent.com/GoogleCloudPlatform/deploymentmanager-samples/master/examples/v2/single_vm/vm_template.jinja

Jika template eksternal mengimpor template lain atau jika ada skema yang menyertainya, Anda dapat menyimpan file terkait di direktori yang sama atau subdirektori relatif dan menyertakan template lain ini dengan URL relatif. Pengelola Deployment akan mencari template lain ini menggunakan jalur relatif berdasarkan URL dasar.

Misalnya, jika konfigurasi Anda terlihat seperti ini:

resources:
- name: my-salt-cluster
  type: gs://v2/saltstack/salt_cluster.jinja

Dan ada file skema bernama salt_cluster.jinja.schema yang mengimpor file berikut:

imports:
- path: minion.py
- path: master.py
- path: examples/source/example.py

Deployment Manager akan mendownload dan mengimpor semua file yang diperlukan untuk template secara otomatis.