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
- Jika Anda ingin menggunakan contoh command line dalam panduan ini, instal alat command line`gcloud`.
- Jika Anda ingin menggunakan contoh API dalam panduan ini, siapkan akses API.
- Baca dokumentasi Konfigurasi.
- Baca dokumentasi Template.
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:
- Buat bucket untuk template, atau gunakan bucket yang ada.
- Upload template dan file template terkait, seperti skema, ke bucket.
- 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.