Aracılığıyla paylaş


Linux için sanal makine uzantıları ve özellikleri

Azure sanal makine (VM) uzantıları, Azure VM'lerinde dağıtım sonrası yapılandırma ve otomasyon görevleri sağlayan küçük uygulamalardır. Örneğin, bir VM yazılım yüklemesi, virüsten koruma veya içinde bir betik çalıştırma özelliği gerektiriyorsa, VM uzantısını kullanabilirsiniz.

Azure CLI, Azure PowerShell, Azure Resource Manager şablonları (ARM şablonları) ve Azure portalını kullanarak Azure VM uzantılarını çalıştırabilirsiniz. Uzantıları yeni bir VM dağıtımıyla paketleyebilir veya mevcut herhangi bir sistemde çalıştırabilirsiniz.

Bu makalede Azure VM uzantılarına genel bir bakış, bunları kullanmaya yönelik önkoşullar ve bunları algılama, yönetme ve kaldırma yönergeleri sağlanır. Birçok VM uzantısı kullanılabilir olduğundan bu makalede genel bilgiler sağlanmaktadır. Her birinin potansiyel olarak benzersiz bir yapılandırması ve kendi belgeleri vardır.

Uyarı

Daha hızlı tanılama için VM yardımını deneyin. Windows için VM yardımını veya Linux için VM yardımını çalıştırmanızı öneririz. Bu betik tabanlı tanılama araçları, Azure VM Konuk Aracısı'nı ve genel VM durumunu etkileyen yaygın sorunları belirlemenize yardımcı olur.

Sanal makinelerle ilgili performans sorunları yaşıyorsanız desteğe başvurmadan önce bu araçları çalıştırın.

Kullanım durumları ve örnekler

Her Azure VM uzantısının belirli bir kullanım örneği vardır. Örnekler şunları içerir:

İşleme özgü uzantılara ek olarak, hem Windows hem de Linux VM'leri için özel betik uzantısı kullanılabilir. Linux için Özel Betik uzantısı, tüm Bash betiğinin bir VM üzerinde çalıştırılmasına izin verir. Özel betikler, yerel Azure araçlarının sağlayabileceklerinin ötesinde yapılandırma gerektiren Azure dağıtımları tasarlamak için kullanışlıdır.

Önkoşullar

Uyarı

Uzantılar yalnızca Azure'da Desteklenen Linux dağıtımlarında desteklenir.

Azure Linux Aracısı

VM'de uzantıyı işlemek için Azure Linux Aracısı'nın yüklü olması gerekir. Bazı tek tek uzantıların kaynaklara veya bağımlılıklara erişim gibi önkoşulları vardır.

Azure Linux Aracısı, bir Azure VM ile Azure doku denetleyicisi arasındaki etkileşimleri yönetir. Aracı, VM uzantılarını çalıştırma da dahil olmak üzere Azure VM'lerini dağıtmanın ve yönetmenin birçok işlevsel özelliğinden sorumludur.

Azure Linux Aracısı, Azure Market görüntülerine önceden yüklenmiştir. Desteklenen işletim sistemlerine el ile de yükleyebilirsiniz.

Araç birçok işletim sisteminde çalışır. Ancak uzantılar çerçevesi, uzantıların kullandığı işletim sistemleri için bir sınıra sahiptir. Bazı uzantılar tüm işletim sistemlerinde desteklenmez ve hata kodu 51 ("Desteklenmeyen işletim sistemi") gösterebilir. Desteklenebilirlik için tek tek uzantı belgelerine bakın.

Ağ erişimi

Uzantı paketleri Azure Depolama uzantısı deposundan indirilir. Uzantı durumu karşıya yüklemeleri Azure Depolama'ya gönderiliyor.

Azure Linux Aracısı'nın desteklenen bir sürümünü kullanıyorsanız, VM bölgesinde Azure Depolama'ya erişime izin vermeniz gerekmez. Aracıyı kullanarak iletişimi, aracıya özgü iletişimler için Azure fabric denetleyicisine yönlendirebilirsiniz. Eğer aracının desteklenmeyen bir sürümünü kullanıyorsanız, VM'den o bölgedeki Azure Depolama'ya dışa giden erişime izin vermeniz gerekir.

Önemli

Konuk güvenlik duvarını kullanarak 168.63.129.16 özel IP adresine erişimi engellerseniz, aracının desteklenen bir sürümünü kullanıyor olsanız veya giden erişimi yapılandırsanız bile uzantılar başarısız olur. Ayrıca, VM'nin *.blob.windows.net ve *.blob.storage.azure.net'e giden bir erişimi yoksa, Azure Linux Aracısı'nın başlatılması ve uzantıların yüklenmesi daha fazla gecikmeye neden olur. Bu gecikmeleri önlemek için bu uç noktalara erişime izin verildiğinden emin olun.

Aracıları yalnızca uzantı paketlerini ve raporlama durumunu indirmek için kullanabilirsiniz. Örneğin, bir uzantı yüklemesinin GitHub'dan bir betik indirmesi (Özel Betik uzantısı) veya Azure Depolama'ya (Azure Backup) erişmesi gerekiyorsa, daha fazla güvenlik duvarı veya ağ güvenlik grubu (NSG) portu açmanız gerekir. Farklı uzantıların farklı gereksinimleri vardır çünkü bunlar uygulamadır. Azure Depolama'ya erişim gerektiren uzantılar için Azure NSG hizmet etiketlerini kullanarak erişime izin vekleyebilirsiniz.

Aracı trafik isteklerini yeniden yönlendirmek için Azure Linux Aracısı ara sunucu desteğine sahiptir. Bu proxy sunucusu uzantıları desteklemez. Her uzantıyı bir ara sunucuyla çalışacak şekilde yapılandırmanız gerekir.

VM uzantılarını bulma

Birçok VM uzantısı Azure VM'leri ile kullanılabilir. Tam listeyi görmek için az vm extension image list komutunu kullanın. Aşağıdaki örnekte westus konumundaki tüm kullanılabilir uzantılar listelenir:

az vm extension image list --location westus --output table

VM uzantılarını çalıştırma

Azure VM uzantıları mevcut VM'lerde çalışır. Bu özellik, yapılandırma değişiklikleri yapmanız veya zaten dağıtılmış bir VM'de bağlantıyı kurtarmanız gerektiğinde kullanışlıdır. VM uzantıları ARM şablonu dağıtımlarıyla birlikte de paketlenebilir. ARM şablonlarıyla uzantıları kullanarak Azure VM'lerini dağıtım sonrası müdahale olmadan dağıtabilir ve yapılandırabilirsiniz.

Mevcut bir VM'de uzantı çalıştırmak için aşağıdaki yöntemleri kullanabilirsiniz.

Azure Komut Satırı Arayüzü (Azure CLI)

az vm extension set komutunu kullanarak mevcut bir VM'de Azure VM uzantılarını çalıştırabilirsiniz. Aşağıdaki örnek, myResourceGroup adlı bir kaynak grubundaki myVM adlı VM üzerinde Özel Komut Dosyası uzantısını çalıştırır. Örnek kaynak grubu adını, VM adını ve betiği kendi bilgilerinizle çalıştırmak için değiştirin.

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name customScript \
  --publisher Microsoft.Azure.Extensions \
  --settings '{"fileUris": ["https://raw.githubusercontent.com/me/project/hello.sh"],"commandToExecute": "./hello.sh"}'

Uzantı doğru çalıştığında, çıkış aşağıdaki örneğe benzer:

info:    Executing command vm extension set
+ Looking up the VM "myVM"
+ Installing extension "CustomScript", VM: "mvVM"
info:    vm extension set command OK

Azure PowerShell

Set-AzVMExtension komutunu kullanarak mevcut bir VM'de Azure VM uzantılarını çalıştırabilirsiniz. Aşağıdaki örnek, myResourceGroup adlı bir kaynak grubundaki myVM adlı VM üzerinde Özel Komut Dosyası uzantısını çalıştırır. Örnek kaynak grubu adını, VM adını ve betiği kendi bilgilerinizle çalıştırmak için değiştirin.

$Params = @{
    ResourceGroupName  = 'myResourceGroup'
    VMName             = 'myVM'
    Name               = 'CustomScript'
    Publisher          = 'Microsoft.Azure.Extensions'
    ExtensionType      = 'CustomScript'
    TypeHandlerVersion = '2.1'
    Settings          = @{fileUris = @('https://raw.githubusercontent.com/me/project/hello.sh'); commandToExecute = './hello.sh'}
}
Set-AzVMExtension @Params

Uzantı doğru çalıştığında, çıkış aşağıdaki örneğe benzer:

RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
                         True         OK OK

Azure portalı

Azure portalı aracılığıyla mevcut bir VM'ye VM uzantıları uygulayabilirsiniz. Portalda VM'yi seçin, Uzantılar'ı ve ardından Ekle'yi seçin. Kullanılabilir uzantılar listesinden istediğiniz uzantıyı seçin ve sihirbazdaki yönergeleri izleyin.

Aşağıdaki görüntüde, Azure portalından Linux için Özel Betik uzantısının yüklenmesi gösterilmektedir.

Linux için Özel Betik uzantısını yüklemeye yönelik iletişim kutusunun ekran görüntüsü.

Azure Resource Manager şablonları

BIR ARM şablonuna VM uzantıları ekleyebilir ve bunları şablonun dağıtımıyla çalıştırabilirsiniz. Bir uzantıyı şablonla dağıttığınızda, tam olarak yapılandırılmış Azure dağıtımları oluşturabilirsiniz.

Örneğin, aşağıdaki JSON, bir dizi yük dengeli VM'yi ve bir Azure SQL veritabanını dağıtan tam ARM şablonundan alınır. Ardından her vm'ye bir .NET Core uygulaması yükler. Yazılım yüklemesini VM uzantısı üstlenir.

{
    "apiVersion": "2015-06-15",
    "type": "extensions",
    "name": "config-app",
    "location": "[resourceGroup().location]",
    "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', concat(variables('vmName'),copyindex()))]"
    ],
    "tags": {
    "displayName": "config-app"
    },
    "properties": {
    "publisher": "Microsoft.Azure.Extensions",
    "type": "CustomScript",
    "typeHandlerVersion": "2.1",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-linux/scripts/config-music.sh"
        ]
    },
    "protectedSettings": {
        "commandToExecute": "[concat('sudo sh config-music.sh ',variables('musicStoreSqlName'), ' ', parameters('adminUsername'), ' ', parameters('sqlAdminPassword'))]"
    }
    }
}

ARM şablonları oluşturma hakkında daha fazla bilgi için bkz. Azure Resource Manager şablonundaki sanal makineler.

VM uzantısı verilerinin güvenliğini sağlamaya yardımcı olun

Bir VM uzantısını çalıştırdığınızda kimlik bilgileri, depolama hesabı adları ve erişim anahtarları gibi hassas bilgileri eklemeniz gerekebilir. Birçok VM uzantısı, verileri şifreleyen ve yalnızca hedef VM'nin içinde şifresini çözen korumalı bir yapılandırma içerir. Her uzantının belirli bir korumalı yapılandırma şeması vardır. Her uzantı, uzantıya özgü belgelerde ayrıntılı olarak açıklanmıştır.

Aşağıdaki örnekte Linux için Özel Betik uzantısının bir örneği gösterilmektedir. Çalıştırılacak komut bir kimlik bilgileri kümesi içerir. Bu örnekte, çalıştırılacak komut şifrelenmez.

{
  "apiVersion": "2015-06-15",
  "type": "extensions",
  "name": "config-app",
  "location": "[resourceGroup().location]",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', concat(variables('vmName'),copyindex()))]"
  ],
  "tags": {
    "displayName": "config-app"
  },
  "properties": {
    "publisher": "Microsoft.Azure.Extensions",
    "type": "CustomScript",
    "typeHandlerVersion": "2.1",
    "autoUpgradeMinorVersion": true,
    "settings": {
      "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-linux/scripts/config-music.sh"
      ],
      "commandToExecute": "[concat('sudo sh config-music.sh ',variables('musicStoreSqlName'), ' ', parameters('adminUsername'), ' ', parameters('sqlAdminPassword'))]"
    }
  }
}

commandToExecute özelliğini protected yapılandırmasına taşımak, aşağıdaki örnekte gösterildiği gibi çalıştırma dizesinin güvenliğini sağlar.

{
  "apiVersion": "2015-06-15",
  "type": "extensions",
  "name": "config-app",
  "location": "[resourceGroup().location]",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', concat(variables('vmName'),copyindex()))]"
  ],
  "tags": {
    "displayName": "config-app"
  },
  "properties": {
    "publisher": "Microsoft.Azure.Extensions",
    "type": "CustomScript",
    "typeHandlerVersion": "2.1",
    "autoUpgradeMinorVersion": true,
    "settings": {
      "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-linux/scripts/config-music.sh"
      ]
    },
    "protectedSettings": {
      "commandToExecute": "[concat('sudo sh config-music.sh ',variables('musicStoreSqlName'), ' ', parameters('adminUsername'), ' ', parameters('sqlAdminPassword'))]"
    }
  }
}

Aracılar ve uzantılar nasıl güncelleştirilir?

Aracılar ve uzantılar aynı otomatik güncelleştirme mekanizmasını paylaşır.

Bir güncelleştirme kullanılabilir olduğunda ve otomatik güncelleştirmeler etkinleştirildiğinde, güncelleştirme yalnızca bir uzantıda değişiklik yapıldığında veya aşağıdaki gibi diğer VM modeli değiştikten sonra VM'ye yüklenir:

  • Veri diskleri
  • Uzantılar
  • Uzantı etiketleri
  • Önyükleme tanılama kapsayıcısı
  • Konuk işletim sistemi sırları
  • VM boyutu
  • Ağ profili

Yayımcılar güncelleştirmeleri çeşitli zamanlarda bölgeler için kullanılabilir hale getirir, böylece farklı sürümlerde farklı bölgelerdeki VM'leriniz olabilir.

Uyarı

Bazı güncelleştirmeler ek güvenlik duvarı kuralları gerektirebilir. Daha fazla bilgi için bkz. Ağ erişimi.

Aracı güncellemeleri

Linux VM Aracısı, sağlama aracısı kodunu ve uzantı işleme kodunu tek bir pakette içerir. Ayrı olamazlar.

Cloud-init kullanarak Azure'da sağlama yapmak istediğinizde Sağlama Aracısı'nı devre dışı bırakabilirsiniz.

Desteklenen sürümlerle aracıların otomatik güncelleştirmeleri kullanabilmesi mümkündür. Güncelleştirilebilecek tek kod, Sağlama Aracısı kodu değil uzantı işleme kodudur. Sağlama Aracısı kodu bir kez çalıştırılan koddur.

Uzantı işleme kodu aşağıdakiler için sorumludur:

  • Azure altyapısı ile iletişim kurma.
  • Yüklemeler, raporlama durumu, tek tek uzantıları güncelleştirme ve uzantıları kaldırma gibi VM uzantısı işlemlerini işleme. Güncelleştirmeler, uzantı işleme kodunda güvenlik düzeltmeleri, hata düzeltmeleri ve geliştirmeler içerir.

Aracı yüklendiğinde bir ebeveyn daemon oluşturulur. Bu ebeveyn daha sonra uzantıları işleyen bir alt işlem oluşturur. Aracı için bir güncelleştirme varsa indirilir. Üst öğe alt işlemi durdurur, yükseltip yeniden başlatır. Güncelleştirmeyle ilgili bir sorun oluşursa, ana işlem önceki çocuk sürüme geri döner.

Ana süreç otomatik olarak güncellenemez. Yalnızca bir dağıtım paketi ebeveyni güncelleştirebilir.

Kullandığınız sürümü kontrol etmek için waagent birimini denetleyin:

waagent --version

Çıktı aşağıdaki örneğe benzer:

WALinuxAgent-2.2.45 running on <Linux Distro>
Python: 3.6.9
Goal state agent: 2.7.1.0

Önceki örnek çıktıda, üst (veya dağıtılmış paket sürümü) WALinuxAgent-2.2.45'dir. Goal state agent Değer, otomatik güncelleştirme sürümüdür.

Aracı için otomatik güncelleştirmeyi her zaman etkinleştirmenizi kesinlikle öneririz: AutoUpdate.Enabled=y. Otomatik güncelleştirmeyi etkinleştirmezseniz aracıyı el ile güncelleştirmeye devam etmeniz gerekir. Ayrıca hata ve güvenlik düzeltmeleri de almazsınız.

Uzantı güncelleştirmeleri

Bir uzantı güncelleştirmesi kullanılabilir olduğunda ve otomatik güncelleştirmeler etkinleştirildiğinde, VM modelinde bir değişiklik gerçekleştikten sonra Azure Linux Aracısı uzantıyı indirir ve yükselter.

Otomatik uzantı güncelleştirmeleri küçük veya acil düzeltmedir. Uzantıyı sağlarken küçük güncelleştirmeleri kabul edebilir veya geri çevirebilirsiniz. Aşağıdaki örnek, "autoUpgradeMinorVersion": true, kullanarak bir ARM şablonundaki ikincil sürümleri otomatik olarak nasıl yükselteceğinizi gösterir.

    "publisher": "Microsoft.Azure.Extensions",
    "type": "CustomScript",
    "typeHandlerVersion": "2.1",
    "autoUpgradeMinorVersion": true,
    "settings": {
        "fileUris": [
        "https://raw.githubusercontent.com/Microsoft/dotnet-core-sample-templates/master/dotnet-core-music-linux/scripts/config-music.sh"
        ]
    },

En son ikincil sürüm hata düzeltmelerini almak için uzantı dağıtımlarınızda her zaman otomatik güncelleştirmeyi seçmenizi kesinlikle öneririz. Güvenlik veya önemli hata düzeltmeleri taşıyan düzeltme güncelleştirmelerini geri çeviremezsiniz.

Otomatik güncelleştirmeleri devre dışı bırakırsanız veya ana sürümü yükseltmeniz gerekiyorsa az vm extension set veya Set-AzVMExtension kullanın ve hedef sürümü belirtin.

Uzantı Sürümünü Denetle

Uyarı

Model ve Örnek Görünümü karşılaştırması

Azure'da model görünümü bir uzantı (yayımcı, tür ve istenen sürüm) için tanımladığınız yapılandırmayı yakalarken , örnek görünümü her VM veya ölçek kümesi örneğinde çalıştırılan canlı durumu ve gerçek işleyici sürümünü gösterir; gerçekte yüklü olanı doğrularken örnek görünümünü gerçeklerin kaynağı olarak kullanın.

Tek bir VM'i denetleme

Azure CLI

az vm get-instance-view -g <rg> -n <vm> \
  --query "extensions[].{name:name,type:type,version:typeHandlerVersion,status:statuses[0].displayStatus}" \
  -o table

Gerçekte yüklü işleyici sürümünü ve durumunu göstermek için VM'nin örnek görünümünü okur.

Ölçek kümelerini denetleme (Tekdüzen veya Esnek)

Azure CLI

# Scale set summary (health)
az vmss get-instance-view -g <rg> -n <vmss>

# Per-instance extension versions
az vmss list-instances -g <rg> -n <vmss> --expand instanceView \
  --query "[].{instanceId:instanceId, extVers:instanceView.extensions[].typeHandlerVersion}"

# Specific instance
az vmss vm get-instance-view -g <rg> -n <vmss> --instance-id <id>

Gerçek işleyici sürümlerini doğrulamak için ölçek kümesi veya örnek başına düzeyinde örnek görünümünü kullanın.

Uzantı sürümleri ve durumları da dahil olmak üzere örnek başına çalışma zamanı durumunu döndürür.

Uzantı güncelleştirmelerini tanımlama

Uzantının vm üzerinde autoUpgradeMinorVersion ile ayarlandığını belirleme

Uzantı autoUpgradeMinorVersion ile sağlanmışsa VM modelinden görebilirsiniz. Denetlemek için az vm show komutunu kullanın ve kaynak grubu ile VM adını sağlayın:

az vm show --resource-group myResourceGroup --name myVM

Aşağıdaki örnek çıktı, autoUpgradeMinorVersion'nin true olarak ayarlandığını gösterir:

  "resources": [
    {
      "autoUpgradeMinorVersion": true,
      "forceUpdateTag": null,
      "id": "/subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM/extensions/customScript",

autoUpgradeMinorVersion olayının ne zaman gerçekleştiğini belirleme

Uzantıya yönelik bir güncelleştirmenin ne zaman gerçekleştiğini görmek için /var/log/waagent.log konumundaki VM'deki aracı günlüklerini gözden geçirin.

Aşağıdaki örnekte, VM'ye Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9025 yüklenmişti. Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027 için bir düzeltme mevcuttu.

INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Expected handler state: enabled
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Decide which version to use
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Use version: 2.3.9027
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Current handler state is: NotInstalled
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Download extension package
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Unpack extension package
INFO Event: name=Microsoft.OSTCExtensions.LinuxDiagnostic, op=Download, message=Download succeeded
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Initialize extension directory
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Update settings file: 0.settings
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9025] Disable extension.
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9025] Launch command:diagnostic.py -disable
...
INFO Event: name=Microsoft.OSTCExtensions.LinuxDiagnostic, op=Disable, message=Launch command succeeded: diagnostic.py -disable
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Update extension.
INFO [Microsoft.OSTCExtensions.LinuxDiagnostic-2.3.9027] Launch command:diagnostic.py -update
2017/08/14 20:21:57 LinuxAzureDiagnostic started to handle.

Aracı izinleri

Görevlerini gerçekleştirmek için aracının kök olarak çalışması gerekir.

VM uzantılarıyla ilgili sorunları giderme

Her VM uzantısının belirli sorun giderme adımları olabilir. Örneğin, Özel Betik uzantısını kullandığınızda, betik yürütme ayrıntılarını uzantının çalıştırıldığı VM'de yerel olarak bulabilirsiniz.

Aşağıdaki sorun giderme eylemleri tüm VM uzantıları için geçerlidir:

  • Azure Linux Aracısı günlüğünü denetleyin. Uzantınızın /var/log/waagent.log içinde sağlandığı etkinliğe bakın.
  • /var/log/azure</extensionName> içindeki diğer ayrıntılar için uzantı günlüklerine bakın.
  • Hata kodları, bilinen sorunlar ve uzantıya özgü diğer bilgiler için uzantıya özgü belgelerde sorun giderme bölümlerine bakın.
  • Sistem günlüklerine bakın. Kontrol edin, başka bir uygulamanın paket yöneticisine özel erişim gerektiren uzun süreli bir kurulumu gibi işlemler uzantıyı engellemiş mi?

Uzantı hatalarının yaygın nedenleri

  • Uzantıların çalıştırılması 20 dakika sürer. (İstisnalar Özel Betik ve Chef'tir, bunların süreleri 90 dakikadır.) Dağıtımınız bu süreyi aşarsa, zaman aşımına uğrar. Zaman aşımının nedeni şu olabilir:

    • Düşük kaynaklı sanal makineler.
    • Uzantı sağlamaya çalışırken büyük miktarda kaynak kullanan diğer VM yapılandırmaları veya başlangıç görevleri.
  • En düşük önkoşullar karşılanmaz. Bazı uzantıların yüksek performanslı bilgi işlem görüntüleri gibi VM sürümlerine bağımlılıkları vardır. Uzantılar, Azure Depolama veya genel hizmetlerle iletişim kurma gibi belirli ağ erişim gereksinimlerine sahip olabilir. Diğer örnekler paket depolarına erişim, disk alanı yetersiz veya güvenlik kısıtlamaları olabilir.

  • Paket yöneticisi erişimi özeldir. Bazı durumlarda, her ikisinin de paket yöneticisine özel erişime ihtiyacı olduğundan uzun süre çalışan bir VM yapılandırması ve uzantı yüklemesi çakışabilir.

Uzantı durumunu görüntüleme

Bir VM uzantısı bir VM'de çalıştırıldıktan sonra, uzantı durumunu döndürmek için az vm get-instance-view komutunu kullanın:

az vm get-instance-view \
    --resource-group myResourceGroup \
    --name myVM \
    --query "instanceView.extensions"

Çıktı aşağıdaki örneğe benzer:

  {
    "name": "customScript",
    "statuses": [
      {
        "code": "ProvisioningState/failed/0",
        "displayStatus": "Provisioning failed",
        "level": "Error",
        "message": "Enable failed: failed to execute command: command terminated with exit status=127\n[stdout]\n\n[stderr]\n/bin/sh: 1: ech: not found\n",
        "time": null
      }
    ],
    "substatuses": null,
    "type": "Microsoft.Azure.Extensions.CustomScript",
    "typeHandlerVersion": "2.1.6"
  }

Uzantı yürütme durumunu Azure portalında da bulabilirsiniz. VM'yi seçin, Uzantılar'ı ve ardından istediğiniz uzantıyı seçin.

VM uzantısını yeniden çalıştırma

Vm uzantısının yeniden çalıştırılması gereken durumlar olabilir. Uzantıyı yeniden çalıştırmak için uzantıyı kaldırın ve ardından istediğiniz bir yürütme yöntemiyle uzantıyı yeniden çalıştırın.

Uzantıyı kaldırmak için az vm extension delete komutunu kullanın:

az vm extension delete \
    --resource-group myResourceGroup \
    --vm-name myVM \
    --name customScript

Uzantıyı Azure portalından da kaldırabilirsiniz:

  1. Bir VM seçin.
  2. Uzantılar'ı seçin.
  3. Uzantıyı seçin.
  4. Kaldır'ı seçin.

Genel VM uzantısı rehberi

Uzantı adı Açıklama
Linux için özel Komut Dosyası uzantısı Azure VM'ye karşı betik çalıştırma.
VMAccess uzantısı Azure VM'sine yeniden erişim elde edin. Kullanıcıları ve kimlik bilgilerini yönetmek için de kullanabilirsiniz.