Eylem Komut Çalıştırmalarını kullanarak Linux sanal makinenizde betikleri çalıştırma
Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Esnek ölçek kümeleri
Komut Çalıştırma özelliği Azure Linux sanal makinesinde kabuk betiklerini çalıştırmak için sanal makine (VM) aracısını kullanır. Genel makine veya uygulama yönetimi için bu betikleri kullanabilirsiniz. Vm erişimi ve ağ sorunlarını hızla tanılamanıza ve düzeltmenize ve VM'yi yeniden iyi bir duruma döndürmenize yardımcı olabilir.
Sosyal haklar
Sanal makinelerinize birden çok yolla erişebilirsiniz. Komutunu Çalıştır, SANAL makine aracısını kullanarak sanal makinelerinizde betikleri uzaktan çalıştırabilir. Komutunu Azure portalı, REST API veya Linux VM'leri için Azure CLI aracılığıyla kullanırsınız.
Bu özellik, bir sanal makine içinde betik çalıştırmak istediğiniz tüm senaryolarda kullanışlıdır. Ağ veya yönetici kullanıcı yapılandırması nedeniyle RDP veya SSH bağlantı noktası açık olmayan bir sanal makinede sorun gidermenin ve düzeltmenin tek yollarından biridir.
Önkoşullar
Linux Dağıtımı Desteklenir
Linux Dağıtımı | x64 | ARM64 |
---|---|---|
Alma Linux | 9.x+ | 9.x+ |
Debian | 10+ | 11.x+ |
Flatcar Linux | 3374.2.x+ | 3374.2.x+ |
Azure Linux | 2.x | 2.x |
openSUSE | 12.3+ | Desteklenmiyor |
Oracle Linux | 6.4+, 7.x+, 8.x+ | Desteklenmiyor |
Red Hat Enterprise Linux | 6.7+, 7.x+, 8.x+ | 8.6+, 9.0+ |
Rocky Linux | 9.x+ | 9.x+ |
SLES | 12.x+, 15.x+ | 15.x SP4+ |
Ubuntu | 18.04+, 20.04+, 22.04+ | 20.04+, 22.04+ |
Kısıtlamalar
Run Komutunu kullanırken aşağıdaki kısıtlamalar geçerlidir:
- Çıkış son 4.096 baytla sınırlıdır.
- Bu betiği çalıştırmak için minimum süre 20 saniye kadardır.
- Varsayılan olarak Linux'ta yükseltilmiş kullanıcı olarak çalıştırılan betikler.
- Aynı anda bir betik çalıştırabilirsiniz.
- Bilgi isteyen betikler (etkileşimli mod) desteklenmez.
- Çalışan bir betiği iptal edemezsiniz.
- Betiğin çalıştırılabileceği maksimum süre 90 dakikadır. Bundan sonra betik zaman aşımına uğradı.
- Betiğin sonuçlarını döndürmek için sanal makineden giden bağlantı gerekir.
Not
Düzgün çalışmak için Çalıştır Komutu, Azure genel IP adreslerine bağlantı (bağlantı noktası 443) gerektirir. Uzantının bu uç noktalara erişimi yoksa betikler başarıyla çalıştırılabilir ancak sonuçları döndürmez. Sanal makinedeki trafiği engelliyorsanız, etiketini kullanarak AzureCloud
Azure genel IP adreslerine giden trafiğe izin vermek için hizmet etiketlerini kullanabilirsiniz.
Kullanılabilir komutlar
Bu tabloda Linux VM'leri için kullanılabilen komutların listesi gösterilir. İstediğiniz özel betiği çalıştırmak için RunShellScript komutunu kullanabilirsiniz. Bir komutu çalıştırmak için Azure CLI veya PowerShell kullanırken, veya -CommandId
parametresi için --command-id
sağladığınız değer aşağıdaki listelenen değerlerden biri olmalıdır. Kullanılabilir bir komut olmayan bir değer belirttiğinizde şu hatayı alırsınız:
The entity was not found in this Azure location
Ad | Açıklama |
---|---|
RunShellScript | Linux kabuk betiği çalıştırır. |
ifconfig | Tüm ağ arabirimlerinin yapılandırmasını alır. |
Azure CLI
Aşağıdaki örnekte az vm run-command komutu kullanılarak Azure Linux VM'sinde kabuk betiği çalıştırılır.
az vm run-command invoke -g myResourceGroup -n myVm --command-id RunShellScript --scripts "apt-get update && apt-get install -y nginx"
Not
Komutları farklı bir kullanıcı olarak çalıştırmak için bir kullanıcı hesabı belirtmek için girin sudo -u
.
Azure portal
Azure portalında bir VM'ye gidin ve soldaki menüde İşlemler'in altında Çalıştır komutunu seçin. VM'de çalıştırılacak kullanılabilir komutların listesini görürsünüz.
Çalıştırılacak komutu seçin. Bazı komutların isteğe bağlı veya gerekli giriş parametreleri olabilir. Bu komutlar için parametreler, giriş değerlerini sağlamanız için metin alanları olarak sunulur. Her komut için Betiği görüntüle'yi genişleterek çalıştırılan betiği görüntüleyebilirsiniz. RunShellScript , kendi özel betiğinizi sağlamanıza olanak sağladığından diğer komutlardan farklıdır.
Not
Yerleşik komutlar düzenlenemez.
Komutu seçtikten sonra çalıştır'ı seçerek betiği çalıştırın. Betik tamamlandıktan sonra çıktıyı ve çıkış penceresindeki hataları döndürür. Aşağıdaki ekran görüntüsünde ifconfig komutunu çalıştırmaya yönelik örnek bir çıkış gösterilmektedir.
PowerShell
Aşağıdaki örnek, Azure VM'de PowerShell betiği çalıştırmak için Invoke-AzVMRunCommand cmdlet'ini kullanır. cmdlet'i, parametresinde başvuruda bulunulduğu betiğin -ScriptPath
cmdlet'in çalıştırıldığı yere yerel olmasını bekler.
Invoke-AzVMRunCommand -ResourceGroupName '<myResourceGroup>' -Name '<myVMName>' -CommandId 'RunShellScript' -ScriptPath '<pathToScript>' -Parameter @{"arg1" = "var1";"arg2" = "var2"}
Komut Çalıştırma'ya erişimi sınırlama
Çalıştırma komutlarının listelenmesi veya bir komutun ayrıntılarının gösterilmesi için Abonelik düzeyinde izin gerekir Microsoft.Compute/locations/runCommands/read
. Yerleşik Okuyucu rolü ve üst düzeyler bu izne sahiptir.
Komut çalıştırmak için izin gerekir Microsoft.Compute/virtualMachines/runCommands/write
. Sanal Makine Katılımcısı rolü ve üst düzeyler bu izne sahiptir.
Komut Çalıştır'ı kullanmak için yerleşik rollerden birini kullanabilir veya özel bir rol oluşturabilirsiniz.
Eylem Çalıştırma Komutu Linux sorunlarını giderme
Linux ortamları için eylem çalıştırma komutunun sorunlarını giderirken, diğer ayrıntılar için genellikle aşağıdaki dizinde bulunan işleyici günlük dosyasına bakın: /var/log/azure/run-command-handler/handler.log
Bilinen sorunlar
Linux eylem çalıştırma komut günlükleri, Windows günlüklerini çalıştırma eylemiyle karşılaştırıldığında birkaç önemli farka sahiptir:
- Sıra numarası günlüğün her satırı 'seq=#' olarak bildirilir
- Bunu içeren
Awaiting completion...
bir satır olmayacaktır çünkü bu işlemde yalnızca Windows çalıştır komutu olacaktır. - Satır
Command existed with code: #
aynı zamanda yalnızca eylem çalıştırma komutu Windows günlüğünde de bulunur.
Eylem Çalıştırma Komutunu Kaldırma
Eylem çalıştırma komutu Linux uzantısını kaldırmanız gerekiyorsa Azure PowerShell ve CLI için aşağıdaki adımlara bakın:
Aşağıdaki kaldırma örneklerinde rgname ve vmname değerini ilgili kaynak grubu adınız ve sanal makine adınızla değiştirin.
Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -VMName 'vmname' -CommandId 'RemoveRunCommandLinuxExtension'
az vm run-command invoke --command-id RemoveRunCommandLinuxExtension --name vmname -g rgname
Not
Çalıştırma Komutunu yeniden uyguladığınızda uzantı otomatik olarak yüklenir. Uzantıyla ilgili sorunları gidermek için uzantı kaldırma komutunu kullanabilirsiniz.
Sonraki adımlar
Sanal makinenizde betikleri ve komutları uzaktan çalıştırmanın diğer yolları hakkında bilgi edinmek için bkz . Linux VM'nizde betik çalıştırma.