Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: ✔️ mesin virtual Linux ✔️ mesin virtual Windows ✔️ Set skala fleksibel
Anda mungkin perlu memasukkan skrip atau metadata lain ke dalam mesin virtual (VM) Microsoft Azure pada waktu provisi. Azure mendukung skenario ini melalui fitur yang disebut data kustom.
Data khusus disediakan untuk VM saat startup atau penyiapan awal, yang disebut provisioning. Penyediaan adalah proses ketika parameter pembuatan VM (misalnya, nama host, nama pengguna, kata sandi, sertifikat, data kustom, dan kunci) disediakan untuk VM. Agen provisi, seperti cloud-init, memproses parameter tersebut.
Nota
Azure juga menawarkan fitur data pengguna terpisah. Tidak seperti data kustom, data pengguna dapat diambil dari Azure Instance Metadata Service (IMDS), persisten selama masa pakai VM, dan dapat diperbarui tanpa menghentikan atau mengganti nama VM. Gunakan data pengguna saat Anda memerlukan akses atau pembaruan pascaprovisi; gunakan data kustom saat Anda memerlukan payload yang diproses oleh agen provisi pada boot pertama.
Meneruskan data kustom ke Mesin Virtual
Untuk menggunakan data kustom, Anda harus mengodekan Base64 konten sebelum meneruskan data ke API--kecuali jika Anda menggunakan alat CLI yang melakukan konversi untuk Anda, seperti Azure CLI. Ukurannya tidak boleh melebihi 64 KB.
Di CLI, Anda dapat meneruskan data kustom Anda sebagai file, seperti yang ditunjukkan contoh berikut. File dikonversi ke Base64.
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image Ubuntu2204 \
--custom-data cloud-init.txt \
--generate-ssh-keys
Di Azure Resource Manager, terdapat fungsi base64:
"name": "[parameters('virtualMachineName')]",
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2019-07-01",
"location": "[parameters('location')]",
"dependsOn": [
..],
"variables": {
"customDataBase64": "[base64(parameters('stringData'))]"
},
"properties": {
..
"osProfile": {
"computerName": "[parameters('virtualMachineName')]",
"adminUsername": "[parameters('adminUsername')]",
"adminPassword": "[parameters('adminPassword')]",
"customData": "[variables('customDataBase64')]"
},
Memproses data kustom
Agen provisi yang diinstal pada Mesin Virtual menangani komunikasi dengan platform dan menempatkan data pada sistem file.
Windows
Data kustom ditempatkan di %SystemDrive%\AzureData\CustomData.bin sebagai file biner, tetapi tidak diproses. Untuk memproses file ini, buat gambar kustom dan tulis kode yang membaca CustomData.bin.
Folder %SystemDrive%\AzureData diamankan selama provisi sehingga hanya NT AUTHORITY\SYSTEM dan BUILTIN\Administrator yang memiliki kontrol penuh, dan CustomData.bin mewarisi izin ini. Jika Anda menyalin CustomData.bin di tempat lain untuk diproses, atur izin pada tujuan secara eksplisit, karena izinnya tidak ditransfer dengan file..
Linux
Pada sistem operasi Linux, data kustom diteruskan ke Mesin Virtual melalui file ovf-env.xml. File tersebut disalin ke direktori /var/lib/waagent selama proses provisi. Versi Agen Linux yang lebih baru menyalin data yang dikodekan Base64 ke /var/lib/waagent/CustomData untuk kenyamanan.
Azure saat ini mendukung dua agen provisi:
Linux Agent. Secara default, agen tidak memproses data kustom. Anda perlu membuat gambar kustom dengan data yang diaktifkan. Pengaturan yang relevan adalah:
Provisioning.DecodeCustomDataProvisioning.ExecuteCustomData
Saat Anda mengaktifkan data kustom dan menjalankan skrip, komputer virtual tidak akan melaporkan provisi VM yang berhasil hingga skrip selesai dieksekusi. Jika skrip melebihi batas total waktu provisi VM 40 menit, pembuatan VM gagal.
Jika skrip gagal dijalankan, atau terjadi kesalahan selama eksekusi, hal ini bukan kegagalan provisi yang fatal. Anda perlu membuat jalur pemberitahuan untuk memberi tahu Anda tentang status penyelesaian skrip.
Untuk memecahkan masalah eksekusi data kustom, tinjau /var/log/waagent.log.
cloud-init. Secara default, agen ini memproses data kustom. Mendukung berbagai format data kustom, seperti konfigurasi cloud-init dan skrip.
Mirip dengan Agen Linux, jika kesalahan terjadi selama eksekusi pemrosesan konfigurasi atau skrip saat cloud-init memproses data kustom, hal ini bukan kegagalan provisi yang fatal. Anda perlu membuat jalur pemberitahuan untuk memberi tahu Anda tentang status penyelesaian skrip.
Namun, tidak seperti Agen Linux, cloud-init tidak menunggu konfigurasi data kustom dari pengguna selesai sebelum melaporkan ke platform bahwa Mesin Virtual sudah siap. Untuk informasi selengkapnya tentang cloud-init di Azure, termasuk pemecahan masalah, lihat dukungan cloud-init untuk mesin virtual di Azure.
FAQ
Dapatkah saya memperbarui data kustom setelah VM dibuat?
Untuk Mesin Virtual tunggal, Anda tidak dapat memperbarui data kustom dalam model Mesin Virtual. Tetapi untuk Virtual Machine Scale Sets, Anda dapat memperbarui data kustom. Untuk informasi selengkapnya, lihat Memodifikasi Scale Set. Saat Anda memperbarui data kustom dalam model untuk Virtual Machine Scale Set:
- Instans yang ada dalam kumpulan skala tidak menerima data kustom yang diperbarui sampai instans tersebut diperbarui ke model terbaru dan di-image ulang.
- Instans baru menerima data kustom baru.
Dapatkah saya menempatkan nilai sensitif dalam data kustom?
Kami menyarankan untuk tidak menyimpan data sensitif dalam data kustom. Untuk informasi selengkapnya, lihat praktik terbaik keamanan dan enkripsi data Azure.
Apakah data kustom tersedia di IMDS?
No. Data kustom tidak muncul melalui Azure Instance Metadata Service (IMDS). Jika Anda perlu mengambil payload dari dalam VM setelah provisi, atau memperbaruinya tanpa menghentikan atau meniru ulang VM, gunakan fitur data pengguna sebagai gantinya. Untuk detail tentang membaca data pengguna dari IMDS, lihat Mendapatkan data pengguna.