Azure Stack Edge Pro cihazınızda çalışan VM'lerde Özel Betik Uzantısı dağıtma
ŞUNLAR IÇIN GEÇERLIDIR:Azure Stack Edge Pro - GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure 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 betik 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 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ıyla tümleşir. Azure CLI, PowerShell veya Azure Sanal Makineler REST API'sini kullanarak da çalıştırabilirsiniz.
Özel Betik Uzantısı için İşletim Sistemi
Windows'ta Özel Betik Uzantısı için desteklenen 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 |
Ön koşullar
VM şablonlarını ve parametre dosyalarını istemci makinenize indirin. İndirme işlemini ç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, 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 Betik Uzantısı
Cihazınızda çalışan bir VM için Windows için Özel Betik Uzantısı dağıtmak için parametre dosyasını düzenleyin addCSExtWindowsVM.parameters.json
ve ş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.json
dağı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>"
Dekont
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/947b3cfd-7a1b-4a90-7cc5-e52caf221332/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>
Dekont
Dağıtım tamamlandığında, olarak ProvisioningState
değişir Succeeded
.
Uzantı çıkışı, hedef sanal makinenin aşağıdaki klasörünün altında bulunan dosyalarda günlüğe 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 bir VM için Windows için Özel Betik Uzantısı dağıtmak için parametre dosyasını düzenleyin addCSExtLinuxVM.parameters.json
ve şablonu addCSExtensiontoVM.json
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>"
Dekont
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
, dizininde /home/Administrator
bir dosya file2.txt
oluşturmak için ayarlanmıştır ve dosyanın içeriği şeklindedirsome text
. 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). Şu 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/947b3cfd-7a1b-4a90-7cc5-e52caf221332/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>
Dekont
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