Menyimpan Template di Host Eksternal

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

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

  • Bagikan template dengan mudah kepada orang lain
  • Pastikan 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 diperbarui. 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 sudah ada.
  2. Upload template Anda 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 tersebut, 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 bucket Cloud Storage masing-masing 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, selama template tersebut dapat diakses oleh publik. Misalnya, Anda dapat menghosting template di GitHub dan mereferensikan template tersebut menggunakan URL GitHub.

Khusus untuk GitHub, Anda harus menyediakan URL GitHub mentah agar 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 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. Deployment Manager akan mencari template lain 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-file ini:

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

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