Aracılığıyla paylaş


Azure DevTest Labs'de laboratuvar sanal makinelerindeki yapıtlarla ilgili sorunları 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.

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ıtlar uygulayabilir. Çeşitli olası sorunlar yapıtların yüklenememesine ve laboratuvara uygulanamamasına veya laboratuvar VM'sinde doğru şekilde çalışması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

Aşağıdaki adımları izleyerek Azure portalında VM durumunu denetleyin:

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

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

  2. Yapıtlar'ı seçin ve laboratuvar VM'sinin yapıt listesini açın:

    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 onaylama işlemini gösteren ekran görüntüsü.

    Yapıtları uygula seçeneği gri olduğunda, 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ı gösteren iletinin ekran görüntüsü.

PowerShell komutu kullanın

Laboratuvar VM'nizin uygulanan yapıtları alıp alamadığını denetlemek için Azure PowerShell'i de kullanabilirsiniz.

Aşağıdaki GET komut, True veya False değerine sahip bayrağı döndürür canApplyArtifacts . komutunu çalıştırmak için parametresini $LabName/$VmName laboratuvar adınız ve VM adınız ile değiştirin ve parametresinde $LabRgName laboratuvar kaynak grubunuzu belirtin.

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ırma

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

Aşağıdaki adımları izleyerek başarısız yapıtları araştırın:

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

    Laboratuvar sanal makinesi için başarısız yapıtın nasıl bulunup seçildiğini 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. Bu düzeyde bir hata, abonelik ve laboratuvar VM'sini içeren kaynak grubu için Etkinlik günlüklerinde gösterilir.

Not

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.

Etkinlik günlüğü girişlerini laboratuvar VM'sinde yapıtın yüklenmesi veya uygulanmasıyla ilgili hatalar için şu adımları izleyin:

  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ölme başlığı, yapıtları sanal makineye uygula gibi giriş başlığına karşılık gelir:

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

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. Bir yapıt laboratuvar VM'nizi yükleyemezse veya uygulayamazsa, 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 başlatıldığında oluşturulan bir laboratuvar depolama hesabında önbelleğe alır.

  • Ö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.

  • Depolama hesabına erişim engellenmişse, aşağıdaki örneğe 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 hatayla karşılaşabileceğiniz bir senaryo, trafiğin VM'den Azure Depolama hizmetine engellenmesidir. Hata, laboratuvar VM'sinin kaynak grubunun Etkinlik günlüğünde görüntülenir.

Azure Depolama hesabına yönelik depo bağlantısı sorunlarını şu adımlarla 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 NSG'ye İzin Ver kuralının mevcut olduğundan emin olmak için geçerli 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 gibi a<labname>#çok basamaklı bir sayıyla biter.

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

    2. Diyagramda, tanımlanan adlandırma kuralıyla a<labname>#eşleşen bir ada sahip Depolama hesabını bulun.

    3. Açılan menüyü görmek için Depolama hesabı kaynağını seçin ve ardından 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 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 listesinin laboratuvar VM'leri oluşturmak için kullanılabilecek laboratuvarın sanal ağlarını gösterdiğini onaylayın:

        Laboratuvar kaynağı depolama hesabı için Seçili sanal ağlardan ve IP adreslerinden etkinleştirildi seçimini gösteren ekran görüntüsü.

      2. Aksi takdirde, Tüm ağlardan etkinleştirildi seçeneğinin belirlenmiş olduğunu onaylayın:

        Laboratuvar kaynağı depolama hesabı için Tüm ağlardan etkinleştirildi seçimini 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.

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

Aşağıdaki adımları izleyerek Bir Windows VM için Özel Betik Uzantısı (CSE) günlük dosyasını görüntüleyin:

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

  2. bir Dosya Gezgini penceresi açın ve C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<CSE version>\Status\ adresine gidin. Örnek CSE sürümü>: 1.10.12.<

    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 Özel Betik Uzantısı 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 yapıtları uygulama isteğine hizmet etmek için CSE ilk yüklendiğinde, laboratuvar VM'sinin 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.

Aşağıdaki adımları izleyerek 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. bir Dosya Gezgini penceresi açın ve C:\WindowsAzure\logs gibi laboratuvar VM'nizin günlük dosyalarını içeren klasöre gidin.

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

  4. Günlük dosyasında VM Aracısı'nın başlatılmasını, başlatılmasını tamamlayıp ilk sinyalin gönderilmesini gösteren girdileri arayın. Yapıt sorunuyla karşılaştığınız süre boyunca zaman damgaları için girişleri 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ü. Gecikmenin nedeni, ilk çalıştırma deneyimi (OOBE) hizmetinin başlatılmasının uzun sürmesidir. 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ırma

Yapıt yüklemesinin başarısız olmasının bir diğer nedeni de yapıt yükleme betiğinin yazılmış olmasıdır.

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.

  • Betik, betik yürütme sırasında 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.

Aşağıdaki adımları izleyerek 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. bir Dosya Gezgini penceresi açın.

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

    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. Betiğin beklenmeyen veya sorunlu davranış gösterip göstermediğ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 özel yapıtların doğru yapıyı uyguladığını onaylamayı unutmayın. 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ılandırılmış 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.

Betik güncelleştirmesini isteme

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.

Destek alın

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