Azure DevTest Labs'teki laboratuvar sanal makinelerindeki hataları giderme

Bu makale, Azure DevTest Labs sanal makine (VM) kaynaklarınızdaki yapıt hatalarına yönelik olası nedenler ve sorun giderme adımlarında size yol gösterir.

Artifaktlar, 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ıtlar uygulayabilir. Çeşitli olası sorunlar, bileşenlerin yüklenmesini ve bir laboratuvara uygulanmasını engelleyebilir veya laboratuvar VM'sinde doğru şekilde çalışmamasına neden olabilir.

Bir yapıt yanıt vermeyi durduruyor gibi göründüğünde, ilk adım işlemin neden takıldığını belirlemeyi denemektir. 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ından veya yapıt hatasının oluştuğu VM'den giderebilirsiniz.

Azure portalında sorun giderme

Bir yapıt laboratuvar VM'nize başarıyla uygulanmıyorsa, Azure portalında VM'nizin durumunu araştırarak işe başlayabilirsiniz. VM'nin durumu hakkında bilgi bulabilir, çalıştığını onaylayabilir ve yapıtların uygulanabildiğini doğrulayabilirsiniz. Laboratuvar VM'sinin Etkinlik günlüğü verileri, yükleme işlemleriyle ilgili girdileri gösterir. Yapıt hataları hakkında bilgi bulmak için girdileri de kontrol edebilirsiniz.

VM durumunu denetleme

Şu adımları tamamlayarak Azure portalında VM durumunu denetleyin:

  1. DevTest Labs laboratuvar VM'sinin Genel Bakış sayfasına gidin ve makine durumunun Çalışıyor olduğunu onaylayın:

    DevTest Labs sanal makinesinin çalıştığını onaylamayı gösteren ekran görüntüsü.

  2. Laboratuvar VM'sinin yapıt listesini açmak için Yapıtlar'ı seçin:

    Laboratuvar sanal makinesi için Yapıtlar listesinin nasıl açıldığını gösteren ekran görüntüsü.

  3. Yapıtları uygula seçeneğini işaretleyin ve laboratuvar VM'sinin uygulanan yapıtları kabul etmeye hazır olduğunu onaylayın:

    Yapıtların DevTest Labs sanal makinesine uygulanabileceğini onaylamayı gösteren ekran görüntüsü.

    Yapıtları uygula seçeneği soluk görüntülendiğinde, yapıtları laboratuvar VM'sine uygulayamazsınız ve sayfada bir bildirim iletisi görürsünüz:

    Yapıtların DevTest Labs sanal makinesine uygulanadığını belirten iletinin ekran görüntüsü.

PowerShell komutu kullanma

Laboratuvar VM'nizin uygulanan eserleri alıp alamayacağını kontrol etmek için Azure PowerShell'i de kullanabilirsiniz.

Aşağıdaki GET komut, True veya False değerine sahip bayrağı döndürür canApplyArtifacts . Komutu çalıştırmak için, $SubscriptionId parametresini abonelik kimliğinizle, $LabName/$VmName parametresini laboratuvar ve VM adınızla, ve $LabRgName parametresini laboratuvar kaynak grubu adınızla değiştirin.

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 ayrıntılarını araştırın

Bir yapıt yanıt vermeyi durdurabilir ve sonunda laboratuvar VM'sinin yapıt listesinde Başarısız olarak gösterilebilir.

Bu adımları izleyerek başarısız olmuş nesneleri inceleyin:

  1. Laboratuvar VM'sinin Yapıtlar listesi sayfasına gidin ve Başarısız durumuna sahip yapıtı seçin:

    Laboratuvar sanal makinesi için başarısız yapıtı gösteren ekran görüntüsü.

  2. Yapıt ayrıntıları görünümü açılır. Ayrıntılar arasında yapıt hatasıyla ilgili Dağıtım İletisi ve Uzantı İletisi bilgileri yer alır:

    Dağıtım ve uzantı iletisi bilgileri de dahil olmak üzere başarısız yapıtın ayrıntılarının 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. Abonelik ve laboratuvar VM'sini içeren kaynak grubu için Etkinlik günlüklerinde bu düzeyde bir hata görüntülenir.

Note

Etkinlik günlüklerini görüntülediğinizde, hata hata özetlerini görmek için yükleme işlemi girişlerini genişletmeniz gerekebilir.

Aşağıdaki adımları tamamlayarak Etkinlik günlüğü girişlerinde laboratuvar VM'sinde yapıtın yüklenmesi veya uygulanmasıyla ilgili hataları inceleyin:

  1. Laboratuvar VM'sinin Etkinlik günlüğü sayfasına gidin ve Başarısız durumuna sahip yapıtı bulun:

    Laboratuvar VM'sinde başarısız bir yapıtın Etkinlik günlüğü girişinin nasıl bulunduğunu gösteren ekran görüntüsü.

  2. Ayrıntılar bölmesini açmak ve günlük bilgilerini görüntülemek için girdiyi seçin:

    • Yapıtı doğrudan laboratuvar VM'nize uygulamaya çalışıyorsanız Sanal Makine Uzantısı Oluşturma veya Güncelleştirme yükleme işlemiyle ilgili hata hatalarını arayın.

    • Vm oluşturuyor ve işlem sırasında yapıtı uyguluyorsanız, Sanal Makine Oluşturma veya Güncelleştirme yükleme işlemi için bildirilen hata hatalarını arayın.

    Bölmenin başlığı giriş başlığına karşılık gelir; örneğin, Yapıtları sanal makineye uygula:

    Başarısız bir yapıtın Etkinlik günlüğü girdisinin ayrıntılarının nasıl görüntülendiğini gösteren ekran görüntüsü.

  3. Ayrıntılar bölmesinde JSON'ı seçerek JSON yükünün içeriğini gözden geçirin. Hatayı JSON belgesinin sonunda görebilirsiniz:

    Başarısız bir yapıtın Etkinlik günlüğü girdisinin JSON ayrıntılarının nasıl görüntülendiğini gösteren ekran görüntüsü.

Artifakt deposunu ve laboratuvar depolama hesabını inceleyin

DevTest Labs bir yapıt uyguladığında, bağlı depolardan yapıt yapılandırmasını ve dosyalarını okur. Bir bileşen laboratuvar VM'nize yüklenemez veya uygulanamazsa, sorun depo erişimiyle ilgili olabilir.

Varsayılan olarak, DevTest Labs' in DevTest Labs genel Artifact deposuna erişimi vardır. Özel yapıtlara erişmek için bir laboratuvarı özel bir depoya da bağlayabilirsiniz. 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.

  • Özel bir yapıt yüklenmede başarısız olursa, ö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.

  • Depolama hesabına erişim engellenmişse ş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.
    

    Örneğin, VM'den Azure Depolama hizmetine trafik engellendiğinde bu hatayla karşılaşabilirsiniz. Hata, laboratuvar VM'sinin kaynak grubunun Etkinlik günlüğünde görüntülenir.

Şu adımları tamamlayarak Azure Depolama hesabına yönelik depo bağlantısı sorunlarını belirleyin:

  1. 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 eklenirse, laboratuvar VM'lerinizi oluşturmak için kullanılan sanal ağı etkileyebilir.

  2. Tüm 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 bir İzin Ver NSG kuralının mevcut olduğundan emin olmak için etkin güvenlik grubu kurallarını gözden geçirin. Daha fazla bilgi için bkz . VM trafik akışı sorunlarını gidermek için etkili güvenlik kuralları kullanma.

  3. Laboratuvarınız için varsayılan depolama hesabını denetleyin.

    Varsayılan depolama hesabı, laboratuvar oluşturma sırasında oluşturulan ilk depolama hesabıdır. Ad genellikle "a" harfiyle başlar ve çok basamaklı bir sayı ile biter: a<labname>#.

    1. DevTest Labs laboratuvarının Genel Bakış sayfasına gidin ve Kaynak görselleştiricisi'ni seçin.

    2. Diyagramda, tanımlanan adlandırma kuralına uygun bir ada sahip olan Depolama hesabını buluna<labname>#.

    3. Fare işaretçinizi Depolama hesabı kaynağının üzerinde bekletin, açılır menüyü görmek için işaretçiyi i simgesine getirin ve görünüm'ü seçin:

      DevTest Labs laboratuvar kaynağı için depolama hesabı için Görünüm seçeneğinin nasıl seçildiğini gösteren ekran görüntüsü.

    4. Depolama hesabına Genel Bakış sayfasında, soldaki menüden Güvenlik + ağ bölümünü genişletin ve ardından Ağ'ı seçin:

      DevTest Labs laboratuvar kaynağının depolama hesabının Ağ yapılandırmasını görüntülemeyi gösteren ekran görüntüsü.

    5. Güvenlik duvarları ve sanal ağlar sekmesinde Genel ağ erişimi seçeneğinin yapılandırmasını denetleyin:

      1. Seçili sanal ağlardan ve IP adreslerinden etkinleştirildi seçiliyse, izin verilen IP adresleri listesinde laboratuvar VM'leri oluşturmak için kullanılabilecek laboratuvarın sanal ağlarının gösterildiğini onaylayın:

        Laboratuvar kaynağı depolama hesabı için seçili sanal ağlardan ve IP adreslerinden etkinleştirme seçiminin gösterildiği ekran görüntüsü.

      2. Aksi takdirde Tüm ağlardan etkinleştirildi seçeneğinin belirlendiğini onaylayın:

        Laboratuvar kaynağı depolama hesabı için seçilen Tüm ağlardan etkinleştir seçeneğini gösteren ekran görüntüsü.

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

Laboratuvar makinesinde sorun giderme

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

CSE günlük dosyasını inceleme

Şu adımları tamamlayarak bir Windows VM için CSE günlük dosyasını görüntüleyin:

  1. Çalışan DevTest Labs laboratuvar VM'nize bağlanın.

  2. Dosya Gezgini'nde C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\Status\ adresine gidin. Örnek <: >.

    DevTest Labs için bir Windows sanal makinesindeki Durum klasörünün içeriğini gösteren ekran görüntüsü.

  3. Hatayı görüntülemek için 1.status gibi bir 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 CSE sürüm 2'yi kullanma.

Azure Sanal Makine Aracısı'nı denetleme

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

Laboratuvar VM'niz ilk kez başlatıldığında veya CSE, yapıtları uygulama isteğini karşılamak için ilk yüklendiğinde, laboratuvar VM'sinin VM Aracısı'nı yükseltmesi gerekebilir 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.

Şu adımları tamamlayarak VM Aracısı'nın yapıtın yanıt vermeyi durdurmasına neden olup olmadığını belirleyin:

  1. Çalışan DevTest Labs laboratuvar VM'nize bağlanın.

  2. Dosya Gezgini'nde laboratuvar VM'nizin günlük dosyalarını içeren klasöre gidin( örneğin, C:\WindowsAzure\logs).

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

  4. Günlük dosyasında VM Aracısı'nın başlatılması, başlatma işleminin tamamlanması ve ilk sinyalin gönderilmesini gösteren girdileri arayın. Yapıt sorunuyla karşılaştığınız zamanındaki zaman damgaları için kayıtları tarayın. Aşağıdaki kod parçacığı günlük dosyasından bazı örnek girdileri gösterir:

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

    Bu örnekte VM Aracısı'nın başlatılması 10 dakika 20 saniye sürdü. OOBE (ilk çalıştırma deneyimi) hizmetinin başlatılması uzun sürdüğü için gecikme oluştu. VM Aracısı'nın uzun başlangıç süresi yapıtın yanıt vermemeye başlamasına neden oldu.

Azure uzantıları hakkında genel bilgi için bkz . Azure sanal makine uzantıları ve özellikleri. Diğer sorun giderme fikirleri için bkz . Azure Sanal Makine Aracısı'ne genel bakış.

Betik sorunlarını araştırın

Yapıt yüklemesinin başarısız olmasının bir diğer nedeni de yapıt yükleme betiğinin yazılma biçimidir.

Olası betik sorunlarına bazı örnekler aşağıda verilmiştir:

  • Betik zorunlu parametrelere sahiptir, ancak betik yürütme sırasında beklenen bir değer geçirilmiyor. Kullanıcının beklenen bir parametreyi boş bırakmasına izin verilirse ve artifactfile.json tanım dosyasında varsayılan değer belirtilmezse bu senaryo oluşabilir. Sonuç olarak, betik kullanıcı girişi beklediğinden yanıt vermeyi durdurur. Betik parametre değerleri gerektirdiğinde, varsayılanları tanımlamak ve kullanıcının bir değer girmesini istemek iyi bir uygulamadır.

  • Komut dosyası yürütülürken kullanıcı eylemi gerektirir. Bu senaryo, kullanıcının işlem gerçekleştirmesini beklerken betik yürütmede uzun bir gecikme olduğunda gerçekleşebilir. Kullanıcı müdahalesi gerektirmeden sessiz çalışabilen betikler yazmak iyi bir uygulamadır.

Şu adımları tamamlayarak betiğin yapıtın yanıt vermeyi durdurmasına neden olup olmadığını belirleyin:

  1. Çalışan DevTest Labs laboratuvar VM'nize bağlanın.

  2. Dosya Gezgini'ni açın.

  3. VM'niz için yapıt yükleme betiğini içeren İndir klasörüne gidin; örneğin, C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\Downloads\. Örnek <: >.

    Sonraki adımlar için bu klasördeki betikle çalışabilir veya betiği VM'nizdeki bir çalışma klasörüne kopyalayabilirsiniz.

  4. VM'nizde yönetim ayrıcalıklarına sahip bir Komut İstemi penceresi açın.

  5. Komut İstemi penceresinde yapıt yükleme betiğini çalıştırın.

    Betik istemlerini izleyin ve gerekli parametre değerlerini girin. Kullanıcı girişi olmamasının veya gecikmeli kullanıcı eyleminin soruna neden olup olmadığını araştırmak için belirli davranışı yeniden oluşturmayı deneyin.

  6. Senaryonun beklenmedik veya sorunlu bir davranış sergileyip sergilemediğini belirleyin.

  7. Gerektiğinde laboratuvar VM'nizdeki betiği düzeltin ve sorunların çözüldüğünü onaylamak için betiği yeniden çalıştırın.

Yapıt yapısını denetleme

Özel yapıtın uygun yapıya sahip olması gerekir. Yapıt yükleme betiğindeki özelleştirilmiş yapıtların doğru yapıyı uyguladığından emin olun. Aşağıdaki kaynaklar bu denetimi tamamlamanıza yardımcı olacak bilgiler sağlar:

  • Bir yapıtı doğru şekilde oluşturma hakkında bilgi için bkz . Özel yapıtlar oluşturma.
  • Düzgün yapıya sahip bir yapıt örneği için Test parametresi türleri yapıtına bakınız.
  • Yapıt betiklerini yazma ve düzeltme hakkında daha fazla bilgi için bkz. Yapıt yazma.

Betik güncellemesi talep et

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 belgesindeki Katkılar bölümüne bakın.

Get support

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

  • Azure DevTest Labs hakkında bilgi için Microsoft Topluluğu kaynaklarında arama yapın ve Stack Overflow'daki gönderileri görüntüleyin.

  • Müşteri deneyimini geliştirmeye yönelik resmi Microsoft Azure hesabı @AzureSupport ile bağlantı kurun. Azure Desteği, Azure topluluğunun yanıtlara, desteğe ve uzmanlara bağlanmasını sağlar.