Memecahkan masalah penerapan artefak di mesin virtual DevTest Labs

Artikel ini memandu Anda melalui kemungkinan penyebab dan langkah-langkah pemecahan masalah untuk kegagalan artefak pada mesin virtual (VM) Azure DevTest Labs.

Artefak adalah alat, tindakan, atau perangkat lunak yang dapat Anda instal di mesin virtual lab selama atau setelah pembuatan mesin virtual. Pemilik lab dapat memilih artefak wajib terlebih dahulu untuk diterapkan ke semua mesin virtual lab saat pembuatan, dan pengguna lab dapat menerapkan artefak ke mesin virtual yang mereka miliki.

Ada beberapa kemungkinan penyebab artefak gagal diinstal atau dijalankan dengan benar. Saat artefak tampak berhenti merespons, pertama-tama tentukan tempat artefak macet. Penginstalan artefak dapat terblokir selama permintaan awal, atau gagal pada eksekusi permintaan.

Anda dapat memecahkan masalah kegagalan artefak dari portal Azure atau dari mesin virtual tempat artefak gagal.

Memecahkan masalah kegagalan artefak dari portal Azure

Jika Anda tidak dapat menerapkan artefak ke VM, pertama-tama periksa item berikut di portal Azure:

  • Pastikan bahwa mesin virtual sedang berjalan.
  • Buka halaman Artefak untuk mesin virtual lab untuk memastikan mesin virtual siap untuk menerapkan artefak. Jika fitur Terapkan artefak tidak tersedia, Anda akan melihat pesan di bagian atas halaman.

Menggunakan perintah PowerShell

Anda juga dapat menggunakan Azure PowerShell untuk menentukan apakah mesin virtual dapat menerapkan artefak. Periksa bendera canApplyArtifacts, yang ditampilkan saat Anda meluaskan operasi GET. Contohnya:

Select-AzSubscription -SubscriptionId $SubscriptionId | Out-Null
$vm = Get-AzResource `
        -Name "$LabName/$VmName" `
        -ResourceGroupName $LabRgName `
        -ResourceType 'microsoft.devtestlab/labs/virtualmachines' `
        -ApiVersion '2018-10-15-preview' `
        -ODataQuery '$expand=Properties($expand=ComputeVm)'
$vm.Properties.canApplyArtifacts

Menyelidiki artefak yang gagal

Artefak dapat berhenti merespons dan akhirnya muncul sebagai Gagal. Untuk menyelidiki artefak yang gagal:

  1. Di halaman Gambaran Umum lab Anda, dari daftar di bagian Mesin virtual saya, pilih mesin virtual yang memiliki artefak yang ingin Anda selidiki.

  2. Di halaman Gambaran Umum, pilih Artefak di navigasi kiri. Halaman Artefak mencantumkan artefak yang terkait dengan mesin virtual dan statusnya.

    Cuplikan layar memperlihatkan daftar artefak dan statusnya.

  3. Pilih artefak yang memperlihatkan status Gagal. Artefak terbuka dengan pesan ekstensi yang menyertakan detail tentang kegagalan artefak.

    Cuplikan layar pesan kesalahan untuk artefak yang gagal.

Memeriksa log Aktivitas

Untuk menginstal artefak, DevTest Labs membuat dan menyebarkan templat Azure Resource Manager (ARM) yang meminta penggunaan Custom Script Extension (CSE). Kesalahan pada tingkat ini muncul di Log aktivitas untuk langganan dan untuk grup sumber daya mesin virtual.

Jika artefak gagal diinstal, periksa entri Log aktivitas untuk Membuat atau Memperbarui Ekstensi Mesin Virtual, jika Anda menerapkan artefak secara langsung, atau Membuat atau Memperbarui Mesin Virtual, jika artefak diterapkan sebagai bagian dari pembuatan mesin virtual. Cari kegagalan di entri ini. Terkadang Anda harus meluaskan entri untuk melihat kegagalannya.

Pilih entri yang gagal untuk melihat detail kesalahan. Pada halaman kegagalan, pilih JSON untuk meninjau konten payload JSON. Anda dapat melihat kesalahan di akhir dokumen JSON.

Selidiki repositori artefak privat dan akun penyimpanan lab

Ketika DevTest Labs menerapkan artefak, DevTest Labs membaca konfigurasi artefak dan file-file dari repositori yang terhubung. Secara default, DevTest Labs memiliki akses ke repositori Artefak publik DevTest Labs. Anda juga dapat menghubungkan lab ke repositori privat untuk mengakses artefak kustom. Jika artefak kustom gagal diinstal, pastikan token akses pribadi (PAT) untuk repositori privat belum kedaluwarsa. Jika PAT kedaluwarsa, artefak tidak akan dicantumkan, dan skrip apa pun yang merujuk ke artefak dari repositori tersebut gagal.

Bergantung pada konfigurasi, mesin virtual lab mungkin tidak memiliki akses langsung ke repositori artefak. DevTest Labs men-cache artefak di akun penyimpanan lab yang dibuat saat lab pertama kali diinisialisasi. Jika akses ke akun penyimpanan ini diblokir, seperti saat lalu lintas diblokir dari mesin virtual ke layanan Azure Storage, Anda mungkin melihat kesalahan yang mirip dengan berikut ini:

CSE Error: Failed to download all specified files. Exiting. Exception: Microsoft.WindowsAzure.Storage.StorageException: The remote server returned an error: (403) Forbidden. ---> System.Net.WebException: The remote server returned an error: (403) Forbidden.

Kesalahan ini muncul di Log aktivitas grup sumber daya mesin virtual.

Untuk memecahkan masalah konektivitas ke akun Azure Storage:

  • Periksa grup keamanan jaringan yang ditambahkan (NSG). Jika kebijakan langganan ditambahkan untuk mengonfigurasi NSG secara otomatis di semua jaringan virtual, kebijakan tersebut akan memengaruhi jaringan virtual yang digunakan untuk membuat mesin virtual lab.

  • Verifikasi aturan NSG. Gunakan verifikasi alur IP untuk menentukan apakah aturan NSG memblokir lalu lintas ke atau dari mesin virtual. Anda juga dapat meninjau aturan grup keamanan yang efektif untuk memastikan aturan Izinkan NSG masuk telah ada. Untuk informasi selengkapnya, lihat Menggunakan aturan keamanan yang efektif untuk memecahkan masalah arus lalu lintas VM.

  • Periksa akun penyimpanan default lab. Akun penyimpanan default adalah akun penyimpanan pertama yang dibuat saat lab dibuat. Namanya biasa dimulai dengan huruf "a" dan diakhiri dengan angka multi-digit, seperti a<labname>#.

    1. Buka grup sumber daya lab.
    2. Temukan sumber daya tipe Akun penyimpanan, yang namanya cocok dengan konvensi.
    3. Pada halaman Gambaran Umum akun penyimpanan, pilih Jaringan di navigasi kiri.
    4. Pada tab Firewall dan jaringan virtual , pastikan bahwa Akses jaringan publik diatur ke Diaktifkan dari semua jaringan. Atau, jika opsi Diaktifkan dari jaringan virtual dan alamat IP yang dipilih dipilih, pastikan jaringan virtual lab yang digunakan untuk membuat VM ditambahkan ke daftar.

Untuk penyelesaian masalah lebih lanjut, lihat Mengonfigurasi firewall dan jaringan virtual Azure Storage.

Memecahkan masalah kegagalan artefak dari lab mesin virtual

Anda dapat terhubung ke mesin virtual lab tempat artefak gagal, dan menyelidiki masalah di sana.

Periksa file log Ekstensi Skrip Kustom

  1. Pada lab mesin virtual, buka C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\*1.10.12*\Status\, di mana *1.10.12* adalah nomor versi CSE.

    Cuplikan layar folder Status di lab V M.

  2. Buka dan periksa file STATUS untuk melihat kesalahan.

Untuk instruksi tentang menemukan file log di mesin virtual Linux, lihat Menggunakan Azure Custom Script Extension Versi 2 dengan mesin virtual Linux.

Periksa Agen mesin virtual

Pastikan Azure Virtual Machine Agent (Agen mesin virtual) telah diinstal dan siap.

Ketika mesin virtual pertama kali dimulai, atau saat CSE pertama kali diinstal untuk melayani permintaan penerapan artefak, mesin virtual mungkin perlu meningkatkan Agen mesin virtual atau menunggu Agen mesin virtual melakukan inisialisasi. Agen mesin virtual mungkin bergantung pada layanan yang membutuhkan waktu lama untuk diinisialisasi. Untuk pemecahan masalah lebih lanjut, lihat ringkasan Azure Virtual Machine Agent.

Untuk memverifikasi jika artefak terlihat berhenti merespons karena Agen mesin virtual:

  1. Pada lab mesin virtual, buka C:\WindowsAzure\logs.

  2. Buka file WaAppAgent.log.

  3. Cari entri yang menunjukkan Agen mesin virtual mulai, menyelesaikan inisialisasi, dan heartbeat pertama yang dikirim, pada sekitar waktu Anda mengalami masalah artefak.

    [00000006] [11/14/2019 05:52:13.44] [INFO]  WindowsAzureGuestAgent starting. Version 2.7.41491.949
    ...
    [00000006] [11/14/2019 05:52:31.77] [WARN]  Waiting for OOBE to Complete ...
    ...
    [00000006] [11/14/2019 06:02:30.43] [WARN]  Waiting for OOBE to Complete ...
    [00000006] [11/14/2019 06:02:33.43] [INFO]  StateExecutor initialization completed.
    [00000020] [11/14/2019 06:02:33.43] [HEART] WindowsAzureGuestAgent Heartbeat.
    

Dalam contoh sebelumnya, Agen mesin virtual membutuhkan waktu 10 menit dan 20 detik untuk mulai. Penyebabnya adalah layanan OOBE membutuhkan waktu lama untuk memulai.

Untuk informasi umum tentang ekstensi Azure, lihat Ekstensi dan fitur komputer virtual Azure.

Menyelidiki masalah skrip

Penginstalan artefak dapat gagal karena cara skrip penginstalan artefak ditulis. Contohnya:

  • Skrip memiliki parameter wajib tetapi gagal meneruskan nilai, baik dengan memungkinkan pengguna membiarkannya kosong, atau karena tidak ada nilai default dalam file definisi artifactfile.json . Skrip berhenti merespons karena menunggu masukan pengguna.

  • Skrip memerlukan input pengguna sebagai bagian dari eksekusi. Skrip harus bekerja secara diam-diam tanpa memerlukan intervensi pengguna.

Untuk memecahkan masalah apakah skrip menyebabkan artefak terlihat berhenti merespons:

  1. Salin skrip ke mesin virtual, atau temukan di mesin virtual di lokasi unduhan skrip artefak, C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.10.12\Downloads.
  2. Dengan menggunakan perintah administratif, jalankan skrip pada mesin virtual, dengan menyediakan nilai parameter yang sama yang menyebabkan masalah.
  3. Tentukan apakah skrip memperlihatkan perilaku yang tidak diinginkan. Jika demikian, minta pembaruan, atau perbaiki skrip.

Tip

Anda dapat mengirimkan koreksi skrip yang diusulkan untuk artefak yang dihosting di repositori publik DevTest Labs. Untuk detailnya, lihat bagian Kontribusi di dokumen README.

Catatan

Artefak kustom harus memiliki struktur yang tepat. Untuk informasi tentang cara membangun artefak dengan benar, lihat Buat artefak kustom. Untuk contoh artefak yang terstruktur dengan benar, lihat artefak Uji jenis parameter.

Untuk informasi lebih lanjut tentang menulis dan mengoreksi skrip artefak, lihat PENULISAN.

Langkah berikutnya

Jika Anda memerlukan bantuan lainnya, coba salah satu saluran dukungan berikut: