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
- 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 sudah ada.
- Upload template Anda dan file template terkait, seperti skema, ke bucket.
- 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.