Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ŞUNLAR IÇIN GEÇERLIDIR:
Azure Stack Edge Pro - GPU
Azure Stack Edge Pro 2
Azure Stack Edge Pro R
Azure Stack Edge Mini R
Özel Betik Uzantısı, Azure Stack Edge Pro cihazlarınızda çalışan sanal makinelerde betikleri veya komutları indirir ve çalıştırır. Bu makalede, Bir Azure Resource Manager şablonu kullanarak Özel Betik Uzantısı'nı yükleme ve çalıştırma işlemi ayrıntılı olarak açıklanmaktadır.
Özel komut dosyası uzantısı hakkında
Özel Betik Uzantısı dağıtım sonrası yapılandırma, yazılım yüklemesi veya diğer yapılandırma/yönetim görevleri için kullanışlıdır. Betikleri Azure Depolama'dan veya başka bir erişilebilir İnternet konumundan indirebilir veya uzantı çalışma zamanına betikler veya komutlar sağlayabilirsiniz.
Özel Betik Uzantısı, Azure Resource Manager şablonlarına entegre olur. Azure CLI, PowerShell veya Azure Sanal Makineler REST API'sini kullanarak da çalıştırabilirsiniz.
Özel Betik Uzantısı için İşletim Sistemi
Windows için Özel Script Uzantısı destekleyen işletim sistemi
Windows için Özel Betik Uzantısı aşağıdaki işletim sisteminde çalışır. Diğer sürümler çalışabilir ancak Azure Stack Edge Pro cihazlarında çalışan VM'lerde şirket içinde test edilmedi.
| Dağıtım | Sürüm |
|---|---|
| Windows Server 2019 | Temel |
| Windows Server 2016 | Temel |
Linux'ta Özel Betik Uzantısı için desteklenen işletim sistemi
Linux için Özel Betik Uzantısı aşağıdaki işletim sistemleri üzerinde çalışır. Diğer sürümler çalışabilir ancak Azure Stack Edge Pro cihazlarında çalışan VM'lerde şirket içinde test edilmedi.
| Dağıtım | Sürüm |
|---|---|
| Linux: Ubuntu | 18.04 LTS |
| Linux: Red Hat Enterprise Linux | 7.4, 7.5, 7.7 |
Önkoşullar
VM şablonlarını ve parametre dosyalarını istemci makinenize indirin. İndirme dosyasını, çalışma dizini olarak kullanacağınız bir dizine açın.
Cihazınızda oluşturulan ve dağıtılan bir VM'niz olmalıdır. VM'ler oluşturmak için Şablonları kullanarak Azure Stack Edge Pro'nuzda VM dağıtma sayfasındaki tüm adımları izleyin.
İşlem ağını yapılandırırken GitHub veya Azure Depolama gibi bir betiği dışarıdan indirmeniz gerekiyorsa işlem için İnternet'e bağlı bağlantı noktasını etkinleştirin. Bu işlem, betiği indirmenizi sağlar.
Aşağıdaki örnekte 2 numaralı bağlantı noktası İnternet'e bağlanmıştı ve işlem ağını etkinleştirmek için kullanılmıştır. Önceki adımda Kubernetes'in gerekli olmadığını belirlediyseniz Kubernetes düğüm IP'sini ve dış hizmet IP atamasını atlayabilirsiniz.
Özel Betik Uzantısını Yükleme
VM'nizin işletim sistemine bağlı olarak, Windows veya Linux için Özel Betik Uzantısı'nı yükleyebilirsiniz.
Windows için Özel Script Uzantısı
Özel Betik Uzantısını Windows için bir cihazda çalışan VM'e dağıtmak için parametre dosyasını addCSExtWindowsVM.parameters.json düzenleyin ve ardından şablonu addCSextensiontoVM.json dağıtın.
Parametre dosyasını düzenle
Dosya addCSExtWindowsVM.parameters.json aşağıdaki parametreleri alır:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"value": "<Name of VM>"
},
"extensionName": {
"value": "<Name of extension>"
},
"publisher": {
"value": "Microsoft.Compute"
},
"type": {
"value": "CustomScriptExtension"
},
"typeHandlerVersion": {
"value": "1.10"
},
"settings": {
"value": {
"commandToExecute" : "<Command to execute>"
}
}
}
}
VM adınızı, uzantının adını ve yürütmek istediğiniz komutu belirtin.
Bu makalede kullanılan örnek parametre dosyası aşağıda verilmişti.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"value": "VM5"
},
"extensionName": {
"value": "CustomScriptExtension"
},
"publisher": {
"value": "Microsoft.Compute"
},
"type": {
"value": "CustomScriptExtension"
},
"typeHandlerVersion": {
"value": "1.10"
},
"settings": {
"value": {
"commandToExecute" : "md C:\\Users\\Public\\Documents\\test"
}
}
}
}
Şablon dağıtma
şablonunu addCSextensiontoVM.jsondağıtın. Bu şablon uzantıyı mevcut bir VM'ye dağıtır. Aşağıdaki komutu çalıştırın:
$templateFile = "<Path to addCSExtensiontoVM.json file>"
$templateParameterFile = "<Path to addCSExtWindowsVM.parameters.json file>"
$RGName = "<Resource group name>"
New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "<Deployment name>"
Not
Uzantı dağıtımı uzun süre çalışan bir iştir ve tamamlanması yaklaşık 10 dakika sürer.
Aşağıda örnek bir çıkış verilmişti:
PS C:\WINDOWS\system32> $templateFile = "C:\12-09-2020\ExtensionTemplates\addCSExtensiontoVM.json"
PS C:\WINDOWS\system32> $templateParameterFile = "C:\12-09-2020\ExtensionTemplates\addCSExtWindowsVM.parameters.json"
PS C:\WINDOWS\system32> $RGName = "myasegpuvm1"
PS C:\WINDOWS\system32> New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "deployment7"
DeploymentName : deployment7
ResourceGroupName : myasegpuvm1
ProvisioningState : Succeeded
Timestamp : 12/17/2020 10:07:44 PM
Mode : Incremental
TemplateLink :
Parameters :
Name Type Value
=============== ========================= ==========
vmName String VM5
extensionName String CustomScriptExtension
publisher String Microsoft.Compute
type String CustomScriptExtension
typeHandlerVersion String 1.10
settings Object {
"commandToExecute": "md C:\\Users\\Public\\Documents\\test"
}
Outputs :
DeploymentDebugLogLevel :
PS C:\WINDOWS\system32>
Dağıtımı izleme
Belirli bir VM için uzantıların dağıtım durumunu denetlemek için aşağıdaki komutu çalıştırın:
Get-AzureRmVMExtension -ResourceGroupName <Name of resource group> -VMName <Name of VM> -Name <Name of the extension>
Aşağıda örnek bir çıkış verilmişti:
PS C:\WINDOWS\system32> Get-AzureRmVMExtension -ResourceGroupName myasegpuvm1 -VMName VM5 -Name CustomScriptExtension
ResourceGroupName : myasegpuvm1
VMName : VM5
Name : CustomScriptExtension
Location : dbelocal
Etag : null
Publisher : Microsoft.Compute
ExtensionType : CustomScriptExtension
TypeHandlerVersion : 1.10
Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myasegpuvm1/providers/Microsoft.Compute/virtualMachines/VM5/extensions/CustomScriptExtension
PublicSettings : {
"commandToExecute": "md C:\\Users\\Public\\Documents\\test"
}
ProtectedSettings :
ProvisioningState : Creating
Statuses :
SubStatuses :
AutoUpgradeMinorVersion : True
ForceUpdateTag :
PS C:\WINDOWS\system32>
Not
Dağıtım tamamlandığında, ProvisioningState, Succeeded olarak değişir.
Uzantı çıkışı, hedef sanal makinedeki aşağıdaki klasör altında bulunan dosyalara kaydedilir.
C:\WindowsAzure\Logs\Plugins\Microsoft.Compute.CustomScriptExtension
Belirtilen dosyalar hedef sanal makinede aşağıdaki klasöre indirilir.
C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.*\Downloads\<n>
burada n , uzantının yürütmeleri arasında değişebilen ondalık bir tamsayıdır. 1.* değeri uzantının gerçek, geçerli typeHandlerVersion değeriyle eşleşir. Örneğin, bu örnekteki gerçek dizin şeklindedir C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\1.10.9\Downloads\0.
Bu örnekte, özel uzantı için yürütülecek komut: md C:\\Users\\Public\\Documents\\test. Uzantı başarıyla yüklendiğinde, dizinin komutundaki belirtilen yolda VM'de oluşturulduğunu doğrulayabilirsiniz.
Linux için Özel Betik Uzantısı
Cihazınızda çalışan Windows tabanlı bir VM için Özel Betik Uzantısı dağıtmak amacıyla addCSExtLinuxVM.parameters.json parametre dosyasını düzenleyin ve ardından addCSExtensiontoVM.json şablonu dağıtın.
Parametre dosyasını düzenle
Dosya addCSExtLinuxVM.parameters.json aşağıdaki parametreleri alır:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"value": "<Name of your VM>"
},
"extensionName": {
"value": "<Name of your extension>"
},
"publisher": {
"value": "Microsoft.Azure.Extensions"
},
"type": {
"value": "CustomScript"
},
"typeHandlerVersion": {
"value": "2.0"
},
"settings": {
"value": {
"commandToExecute" : "<Command to execute>"
}
}
}
}
VM adınızı, uzantının adını ve yürütmek istediğiniz komutu belirtin.
Bu makalede kullanılan örnek parametre dosyası aşağıda verilmişti:
$templateFile = "<Path to addCSExtensionToVM.json file>"
$templateParameterFile = "<Path to addCSExtLinuxVM.parameters.json file>"
$RGName = "<Resource group name>"
New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "<Deployment name>"
Not
Uzantı dağıtımı uzun süre çalışan bir iştir ve tamamlanması yaklaşık 10 dakika sürer.
Aşağıda örnek bir çıkış verilmişti:
PS C:\WINDOWS\system32> $templateFile = "C:\12-09-2020\ExtensionTemplates\addCSExtensionToVM.json"
PS C:\WINDOWS\system32> $templateParameterFile = "C:\12-09-2020\ExtensionTemplates\addCSExtLinuxVM.parameters.json"
PS C:\WINDOWS\system32> $RGName = "myasegpuvm1"
PS C:\WINDOWS\system32> New-AzureRmResourceGroupDeployment -ResourceGroupName $RGName -TemplateFile $templateFile -TemplateParameterFile $templateParameterFile -Name "deployment99"
DeploymentName : deployment99
ResourceGroupName : myasegpuvm1
ProvisioningState : Succeeded
Timestamp : 12/18/2020 1:55:23 AM
Mode : Incremental
TemplateLink :
Parameters :
Name Type Value
=============== ========================= ==========
vmName String VM6
extensionName String LinuxCustomScriptExtension
publisher String Microsoft.Azure.Extensions
type String CustomScript
typeHandlerVersion String 2.0
settings Object {
"commandToExecute": "sudo echo 'some text' >> /home/Administrator/file2.txt"
}
Outputs :
DeploymentDebugLogLevel :
PS C:\WINDOWS\system32>
commandToExecute, /home/Administrator dizininde bir file2.txt dosyası oluşturmak için ayarlanmıştır ve dosyanın içeriği some text şeklindedir. Bu durumda, dosyanın belirtilen yolda oluşturulduğunu doğrulayabilirsiniz.
Administrator@VM6:~$ dir
file2.txt
Administrator@VM6:~$ cat file2.txt
some text
Administrator@VM6:
Dağıtım durumunu izleme
Şablon dağıtımı uzun süre çalışan bir iştir. Belirli bir VM'nin uzantılarının dağıtım durumunu denetlemek için başka bir PowerShell oturumu açın (yönetici olarak çalıştırın). Aşağıdaki komutu çalıştırın:
Get-AzureRmVMExtension -ResourceGroupName myResourceGroup -VMName <VM Name> -Name <Extension Name>
Aşağıda örnek bir çıkış verilmişti:
PS C:\WINDOWS\system32> Get-AzureRmVMExtension -ResourceGroupName myasegpuvm1 -VMName VM5 -Name CustomScriptExtension
ResourceGroupName : myasegpuvm1
VMName : VM5
Name : CustomScriptExtension
Location : dbelocal
Etag : null
Publisher : Microsoft.Compute
ExtensionType : CustomScriptExtension
TypeHandlerVersion : 1.10
Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myasegpuvm1/providers/Microsoft.Compute/virtualMachines/VM5/extensions/CustomScriptExtension
PublicSettings : {
"commandToExecute": "md C:\\Users\\Public\\Documents\\test"
}
ProtectedSettings :
ProvisioningState : Creating
Statuses :
SubStatuses :
AutoUpgradeMinorVersion : True
ForceUpdateTag :
PS C:\WINDOWS\system32>
Not
Dağıtım tamamlandığında, olarak ProvisioningState değişir Succeeded.
Uzantı yürütme çıkışı şu dosyaya kaydedilir: /var/lib/waagent/custom-script/download/0/.
Özel Betik Uzantısını Kaldır
Özel Betik Uzantısını kaldırmak için aşağıdaki komutu kullanın:
Remove-AzureRmVMExtension -ResourceGroupName <Resource group name> -VMName <VM name> -Name <Extension name>
Aşağıda örnek bir çıkış verilmişti:
PS C:\WINDOWS\system32> Remove-AzureRmVMExtension -ResourceGroupName myasegpuvm1 -VMName VM6 -Name LinuxCustomScriptExtension
Virtual machine extension removal operation
This cmdlet will remove the specified virtual machine extension. Do you want to continue?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Yes
RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
True OK OK