DevTest Labs sanal makinelerinde yapıt uygulama sorunlarını giderme

Bu makale, Azure DevTest Labs sanal makinelerde (VM) yapıt hataları için olası nedenler ve sorun giderme adımlarında size yol gösterir.

Yapıtlar, VM oluşturma sırasında veya sonrasında laboratuvar VM'lerine yükleyebileceğiniz araçlar, eylemler veya yazılımlardır. Laboratuvar sahipleri oluşturma sırasında tüm laboratuvar VM'lerine uygulanacak zorunlu yapıtları önceden seçebilir ve laboratuvar kullanıcıları sahip oldukları VM'lere yapıt uygulayabilir .

Yapıtların doğru şekilde yüklenememesinin veya çalıştırılaamamasının çeşitli olası nedenleri vardır. Bir yapıt yanıt vermeyi durduruyor gibi göründüğünde, önce nerede takıldığını belirlemeyi deneyin. Yapıt yüklemesi ilk istek sırasında engellenebilir veya istek yürütme sırasında başarısız olabilir.

Yapıt hatalarını Azure portal veya yapıtın başarısız olduğu VM'den giderebilirsiniz.

Azure portal yapıt hatalarını giderme

Vm'ye yapıt uygulayamıyorsanız, önce Azure portal aşağıdaki öğeleri denetleyin:

  • VM'nin çalıştığından emin olun.
  • Vm'nin yapıtları uygulamaya hazır olduğundan emin olmak için laboratuvar VM'sinin Yapıtlar sayfasına gidin. Yapıtları uygula özelliği kullanılamıyorsa, sayfanın üst kısmında bir ileti görürsünüz.

PowerShell komutu kullanma

VM'nin yapıtları uygulayıp uygulayamayacağını belirlemek için Azure PowerShell de kullanabilirsiniz. bir GET işlemi genişlettiğiniz zaman döndürülen bayrağını canApplyArtifactsinceleyin. Örneğin:

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

Başarısız yapıtı araştırma

Yapıt yanıt vermeyi durdurabilir ve son olarak Başarısız olarak görünebilir. Başarısız yapıtları araştırmak için:

  1. Laboratuvarınızın Genel Bakış sayfasında, Sanal makinelerim altındaki listeden araştırmak istediğiniz yapıtın bulunduğu VM'yi seçin.

  2. VM'ye Genel Bakış sayfasında sol gezinti bölmesinde Yapıtlar'ı seçin. Yapıtlar sayfasında VM ile ilişkili yapıtlar ve bunların durumları listelenir.

    Yapıtların listesini ve durumlarını gösteren ekran görüntüsü.

  3. Başarısız durumunu gösteren yapıtı seçin. Yapıt, yapıt hatasıyla ilgili ayrıntıları içeren bir uzantı iletisiyle açılır.

    Başarısız bir yapıtın hata iletisinin ekran görüntüsü.

Etkinlik günlüklerini inceleme

DevTest Labs, yapıtları yüklemek için Özel Betik Uzantısının (CSE) kullanılmasını isteyen bir Azure Resource Manager (ARM) şablonu oluşturur ve dağıtır. Bu düzeydeki bir hata, abonelik ve VM'nin kaynak grubu için Etkinlik günlüklerinde gösterilir.

Yapıt yüklenemediyse, yapıtı doğrudan uyguladıysanız Sanal Makine Uzantısını Oluştur veya Güncelleştir için Etkinlik günlüğü girişlerini veya yapıt VM oluşturmanın bir parçası olarak uygulanıyorsa Sanal Makine Oluştur veya Güncelleştir'i inceleyin. Bu girdilerin altında hataları arayın. Bazen hatayı görmek için girişi genişletmeniz gerekir.

Hata ayrıntılarını görmek için başarısız girişi seçin. Hata sayfasında JSON yükünün içeriğini gözden geçirmek için JSON'u seçin. Hatayı JSON belgesinin sonunda görebilirsiniz.

Özel yapıt deposunu ve laboratuvar depolama hesabını araştırma

DevTest Labs bir yapıt uyguladığında, bağlı depolardan yapıt yapılandırmasını ve dosyalarını okur. Varsayılan olarak DevTest Labs, DevTest Labs genel Artifact deposuna erişebilir. Özel yapıtlara erişmek için laboratuvarı özel bir depoya da bağlayabilirsiniz. Özel bir yapıt yüklenemezse, özel depo için kişisel erişim belirtecinin (PAT) süresinin dolmadığından emin olun. PAT'nin süresi dolduysa, yapıt listelenmez ve bu depodaki yapıtlara başvuran betikler başarısız olur.

Yapılandırmaya bağlı olarak, laboratuvar VM'lerinin yapıt deposuna doğrudan erişimi olmayabilir. DevTest Labs, yapıtları laboratuvar ilk kez başlatıldığında oluşturulan bir laboratuvar depolama hesabında önbelleğe alır. Vm'den Azure Depolama hizmetine gelen trafiğin engellenmesi gibi bu depolama hesabına erişim engellenirse şuna benzer bir hata görebilirsiniz:

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.

Bu hata, VM'nin kaynak grubunun Etkinlik günlüğünde görüntülenir.

Azure Depolama hesabına bağlantı sorunlarını gidermek için:

  • Eklenen ağ güvenlik gruplarını (NSG' ler) denetleyin. Tüm sanal ağlarda NSG'leri otomatik olarak yapılandırmak için bir abonelik ilkesi eklendiyse, laboratuvar VM'leri oluşturmak için kullanılan sanal ağı etkiler.

  • NSG kurallarını doğrulayın. NSG kuralının bir VM'ye gelen veya vm'den gelen trafiği engelleyip engellemediğini belirlemek için IP akışı doğrulamasını kullanın. Gelen İzin Ver NSG kuralının mevcut olduğundan emin olmak için etkili güvenlik grubu kurallarını da gözden geçirebilirsiniz. Daha fazla bilgi için bkz. VM trafik akışı sorunlarını gidermek için etkili güvenlik kurallarını kullanma.

  • Laboratuvarın varsayılan depolama hesabını denetleyin. Varsayılan depolama hesabı, laboratuvar oluşturulduğunda oluşturulan ilk depolama hesabıdır. Ad genellikle "a" harfiyle başlar ve labname># gibi çok basamaklı bir<sayıyla biter.

    1. Laboratuvarın kaynak grubuna gidin.
    2. Adı kuralla eşleşen Depolama hesabı türündeki kaynağı bulun.
    3. Depolama hesabına Genel Bakış sayfasında sol gezinti bölmesinde Ağ'ı seçin.
    4. Güvenlik duvarları ve sanal ağlar sekmesinde Genel ağ erişimininTüm ağlardan etkin olarak ayarlandığından emin olun. Ya da Seçili sanal ağlardan ve IP adreslerinden etkinleştirildi seçeneği işaretliyse, laboratuvarın VM oluşturmak için kullanılan sanal ağlarının listeye eklendiğinden emin olun.

Ayrıntılı sorun giderme için bkz. Azure Depolama güvenlik duvarlarını ve sanal ağları yapılandırma.

Laboratuvar VM'sinden yapıt hatalarını giderme

Yapıtın başarısız olduğu laboratuvar VM'sine bağlanabilir ve sorunu orada araştırabilirsiniz.

Özel Betik Uzantısı günlük dosyasını inceleme

  1. Laboratuvar VM'sinde C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\*1.10.12*\Status\ konumuna gidin; burada *1.10.12* CSE sürüm numarasıdır.

    Laboratuvar V M'sinde Durum klasörünün ekran görüntüsü.

  2. Hatayı görüntülemek için STATUS dosyasını açın ve inceleyin.

Linux VM'sinde günlük dosyalarını bulma yönergeleri için bkz. Linux sanal makineleriyle Azure Özel Betik Uzantısı Sürüm 2'yi kullanma.

VM Aracısı'nı denetleme

Azure Sanal Makine Aracısı'nın (VM Aracısı) yüklü ve hazır olduğundan emin olun.

VM ilk kez başlatıldığında veya CSE yapıtları uygulama isteğine hizmet etmek için ilk kez yüklendiğinde, VM'nin VM Aracısını yükseltmesi veya VM Aracısı'nın başlatılmasını beklemesi gerekebilir. VM Aracısı, başlatılması uzun süren hizmetlere bağımlı olabilir. Daha fazla sorun giderme için bkz. Azure Sanal Makine Aracısı'ne genel bakış.

Yapıtın VM Aracısı nedeniyle yanıt vermeyi durdurup durdurmadığını doğrulamak için:

  1. Laboratuvar VM'sinde C:\WindowsAzure\logs konumuna gidin.

  2. WaAppAgent.log dosyasını açın.

  3. Yapıt sorunuyla karşılaştığınız süre boyunca VM Aracısı'nın başlatıldığını, başlatıldığını, tamamlandığını ve gönderilen ilk sinyali gösteren girdileri arayın.

    [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.
    

Önceki örnekte VM Aracısı'nın başlatılması 10 dakika 20 saniye sürmüştü. Nedeni OOBE hizmetinin başlatılmasının uzun sürmesiydi.

Azure uzantıları hakkında genel bilgi için bkz. Azure sanal makine uzantıları ve özellikleri.

Betik sorunlarını araştırma

Yapıt yükleme betiğinin yazma biçimi nedeniyle yapıt yüklemesi başarısız olabilir. Örneğin:

  • Betik zorunlu parametrelere sahiptir, ancak kullanıcının boş bırakmasına izin vererek veya artifactfile.json tanım dosyasında varsayılan değer olmadığından bir değer geçiremiyor. Betik, kullanıcı girişi beklediğinden yanıt vermeyi durduruyor.

  • Betik, yürütmenin bir parçası olarak kullanıcı girişi gerektirir. Betikler, kullanıcı müdahalesi gerektirmeden sessiz çalışmalıdır.

Betiğin yapıtın yanıt vermeyi durdurmasına neden olup olmadığını gidermek için:

  1. Betiği VM'ye kopyalayın veya yapıt betiği indirme konumundaki C :\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.10.12\Downloads konumunda bulun.
  2. Yönetici komut istemi kullanarak, betiği VM'de çalıştırarak soruna neden olan parametre değerlerini sağlayın.
  3. Betiğin istenmeyen davranış gösterip göstermediğini belirleyin. Bu durumda bir güncelleştirme isteyin veya betiği düzeltin.

İpucu

DevTest Labs genel deposunda barındırılan yapıtlar için önerilen betik düzeltmelerini gönderebilirsiniz. Ayrıntılar için BENİOKU belgesinin Katkılar bölümüne bakın.

Not

Özel yapıtın uygun yapıya sahip olması gerekir. Bir yapıtı doğru şekilde oluşturma hakkında bilgi için bkz. Özel yapıtlar oluşturma. Düzgün yapılandırılmış bir yapıt örneği için bkz . Test parametresi türleri yapıtı.

Yapıt betiklerini yazma ve düzeltme hakkında daha fazla bilgi için bkz. YAZMA.

Sonraki adımlar

Daha fazla yardıma ihtiyacınız varsa aşağıdaki destek kanallarından birini deneyin: