Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как использовать шаблон Azure Resource Manager (шаблон ARM) для развертывания расширений виртуальной машины на серверах с поддержкой Azure Arc.
Чтобы развернуть расширения на серверах с поддержкой Arc с помощью шаблона ARM, добавьте расширения в шаблон и выполните их с развертыванием шаблона. Расширения можно развернуть на подключенных компьютерах Linux или Windows с помощью Azure PowerShell.
В этой статье показано, как развернуть несколько разных расширений виртуальных машин на сервере с поддержкой Arc с помощью файла шаблона, а также отдельный файл параметров для некоторых расширений. Замените значения на примерах собственными значениями перед развертыванием.
Команды развертывания
Эти примеры команд PowerShell устанавливают расширение на всех подключенных компьютерах в группе ресурсов на основе сведений в шаблоне ARM. Команда использует TemplateFile
параметр для указания шаблона. Если требуется файл параметров, TemplateParameterFile
параметр включается для указания файла, содержащего параметры и значения параметров. Замените шаблоны соответствующими значениями для вашего развертывания.
Для развертывания шаблона ARM и файла параметров используйте следующую команду, заменив примеры значений своими.
New-AzResourceGroupDeployment -ResourceGroupName "<resource-group-name>" -TemplateFile "<template-filename.json>" -TemplateParameterFile "<parameter-filename.json>"
Рассмотрим пример.
New-AzResourceGroupDeployment -ResourceGroupName "ContosoEngineering" -TemplateFile "D:\Azure\Templates\AzureMonitorAgent.json" -TemplateParameterFile "D:\Azure\Templates\AzureMonitorAgentParms.json"
Чтобы развернуть шаблон ARM без файла параметров, используйте следующую команду, заменив примеры значений собственными:
New-AzResourceGroupDeployment -ResourceGroupName "<resource-group-name>" -TemplateFile "<template-filename.json>>"
Рассмотрим пример.
New-AzResourceGroupDeployment -ResourceGroupName "<ContosoEngineering>" -TemplateFile "D:\Azure\Templates\DependencyAgent.json"
Развертывание расширения виртуальной машины агента Azure Monitor
Чтобы развернуть агент Azure Monitor, используйте один из следующих образцов шаблонов для установки агента на Linux или Windows.
Файл шаблона агента Azure Monitor для Linux
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"type": "string"
},
"location": {
"type": "string"
},
"workspaceId": {
"type": "string"
},
"workspaceKey": {
"type": "string"
}
},
"resources": [
{
"name": "[concat(parameters('vmName'),'/AzureMonitorLinuxAgent')]",
"type": "Microsoft.Compute/machines/extensions",
"location": "[parameters('location')]",
"apiVersion": "2021-11-01",
"properties": {
"publisher": "Microsoft.Azure.Monitor",
"type": "AzureMonitorLinuxAgent",
"enableAutomaticUpgrade": true,
"settings": {
"workspaceId": "[parameters('workspaceId')]"
},
"protectedSettings": {
"workspaceKey": "[parameters('workspaceKey')]"
}
}
}
]
}
Файл шаблона агента Azure Monitor для Windows
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"type": "string"
},
"location": {
"type": "string"
},
"workspaceId": {
"type": "string"
},
"workspaceKey": {
"type": "string"
}
},
"resources": [
{
"name": "[concat(parameters('vmName'),'/AzureMonitorWindowsAgent')]",
"type": "Microsoft.Compute/machines/extensions",
"location": "[parameters('location')]",
"apiVersion": "2021-11-01",
"properties": {
"publisher": "Microsoft.Azure.Monitor",
"type": "AzureMonitorWindowsAgent",
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"settings": {
"workspaceId": "[parameters('workspaceId')]"
},
"protectedSettings": {
"workspaceKey": "[parameters('workspaceKey')]"
}
}
}
]
}
Файл параметров агента Azure Monitor
Этот файл параметров можно использовать как для Linux, так и для Windows.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"value": "<vmName>"
},
"location": {
"value": "<region>"
},
"workspaceId": {
"value": "<MyWorkspaceID>"
},
"workspaceKey": {
"value": "<MyWorkspaceKey>"
}
}
}
Сохраните шаблон и файл параметров и измените файл параметров с соответствующими значениями для развертывания. Затем установите расширение агента Azure Monitor на подключенные компьютеры, выполнив команду развертывания PowerShell , найденную ранее в этой статье.
Развертывание расширения пользовательского скрипта
Чтобы использовать расширение пользовательского скрипта, разверните один из следующих примеров шаблонов для Linux и Windows. Сведения о расширении пользовательского скрипта см. в разделе "Расширение пользовательского скрипта" для Linux или расширения пользовательских скриптов для Windows. Существует несколько различных характеристик, которые следует понимать при использовании этого расширения с гибридными компьютерами:
- Список поддерживаемых операционных систем с расширением пользовательского скрипта виртуальной машины Azure не применяется к серверам с поддержкой Azure Arc. См. список поддерживаемых операционных систем для серверов с поддержкой Azure Arc.
- Сведения о конфигурации масштабируемых наборов виртуальных машин Azure или виртуальных машин, созданных с помощью классической модели развертывания, не применимы.
- Если компьютеры должны скачать скрипт внешне и обмениваться данными только через прокси-сервер, необходимо настроить агент подключенного компьютера, чтобы задать переменную среды прокси-сервера.
В конфигурации расширения пользовательских сценариев указываются такие параметры, как расположение сценария и команда для его выполнения. Эта конфигурация указана в следующих шаблонах.
Файл шаблона расширения пользовательского скрипта для Linux
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"type": "string"
},
"location": {
"type": "string"
},
"fileUris": {
"type": "array"
},
"commandToExecute": {
"type": "securestring"
}
},
"resources": [
{
"name": "[concat(parameters('vmName'),'/CustomScript')]",
"type": "Microsoft.HybridCompute/machines/extensions",
"location": "[parameters('location')]",
"apiVersion": "2022-03-10",
"properties": {
"publisher": "Microsoft.Azure.Extensions",
"type": "CustomScript",
"autoUpgradeMinorVersion": true,
"settings": {},
"protectedSettings": {
"commandToExecute": "[parameters('commandToExecute')]",
"fileUris": "[parameters('fileUris')]"
}
}
}
]
}
Файл шаблона пользовательского скрипта для Windows
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"type": "string"
},
"location": {
"type": "string"
},
"fileUris": {
"type": "string"
},
"arguments": {
"type": "securestring",
"defaultValue": " "
}
},
"variables": {
"UriFileNamePieces": "[split(parameters('fileUris'), '/')]",
"firstFileNameString": "[variables('UriFileNamePieces')[sub(length(variables('UriFileNamePieces')), 1)]]",
"firstFileNameBreakString": "[split(variables('firstFileNameString'), '?')]",
"firstFileName": "[variables('firstFileNameBreakString')[0]]"
},
"resources": [
{
"name": "[concat(parameters('vmName'),'/CustomScriptExtension')]",
"type": "Microsoft.HybridCompute/machines/extensions",
"location": "[parameters('location')]",
"apiVersion": "2022-03-10",
"properties": {
"publisher": "Microsoft.Compute",
"type": "CustomScriptExtension",
"autoUpgradeMinorVersion": true,
"settings": {
"fileUris": "[split(parameters('fileUris'), ' ')]"
},
"protectedSettings": {
"commandToExecute": "[concat ('powershell -ExecutionPolicy Unrestricted -File ', variables('firstFileName'), ' ', parameters('arguments'))]"
}
}
}
]
}
Файл параметров пользовательского скрипта
{
"$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
"handler": "Microsoft.Azure.CreateUIDef",
"version": "0.1.2-preview",
"parameters": {
"basics": [
{}
],
"steps": [
{
"name": "customScriptExt",
"label": "Add Custom Script Extension",
"elements": [
{
"name": "fileUris",
"type": "Microsoft.Common.FileUpload",
"label": "Script files",
"toolTip": "The script files that will be downloaded to the virtual machine.",
"constraints": {
"required": false
},
"options": {
"multiple": true,
"uploadMode": "url"
},
"visible": true
},
{
"name": "commandToExecute",
"type": "Microsoft.Common.TextBox",
"label": "Command",
"defaultValue": "sh script.sh",
"toolTip": "The command to execute, for example: sh script.sh",
"constraints": {
"required": true
},
"visible": true
}
]
}
],
"outputs": {
"vmName": "[vmName()]",
"location": "[location()]",
"fileUris": "[steps('customScriptExt').fileUris]",
"commandToExecute": "[steps('customScriptExt').commandToExecute]"
}
}
}
Сохраните шаблон и файл параметров и измените файл параметров с соответствующими значениями для развертывания. Затем установите расширение пользовательского скрипта на подключенные компьютеры, выполнив команду развертывания PowerShell , найденную ранее в этой статье.
Разверните расширение агента зависимостей
Чтобы использовать расширение агента зависимостей Azure Monitor, выполните один из следующих примеров для Linux и Windows. Дополнительные сведения об агенте зависимостей см. в разделе "Обзор агентов Azure Monitor".
Файл шаблона агента зависимостей для Linux
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"type": "string",
"metadata": {
"description": "The name of existing Linux machine."
}
}
},
"resources": [
{
"type": "Microsoft.HybridCompute/machines/extensions",
"name": "[concat(parameters('vmName'),'/DAExtension')]",
"apiVersion": "2022-03-10",
"location": "[resourceGroup().location]",
"dependsOn": [
],
"properties": {
"publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
"type": "DependencyAgentLinux",
"enableAutomaticUpgrade": true
}
}
],
"outputs": {
}
}
Файл шаблона агента зависимостей для Windows
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"type": "string",
"metadata": {
"description": "The name of existing Windows machine."
}
}
},
"resources": [
{
"type": "Microsoft.HybridCompute/machines/extensions",
"name": "[concat(parameters('vmName'),'/DAExtension')]",
"apiVersion": "2022-03-10",
"location": "[resourceGroup().location]",
"dependsOn": [
],
"properties": {
"publisher": "Microsoft.Azure.Monitoring.DependencyAgent",
"type": "DependencyAgentWindows",
"enableAutomaticUpgrade": true
}
}
],
"outputs": {
}
}
Сохраните шаблон, а затем установите расширение агента зависимостей на подключенные компьютеры, выполнив команду развертывания PowerShell , найденную ранее в этой статье.
Развертывание расширения Azure Key Vault
В следующем формате JSON показана схема расширения Azure Key Vault. Для этого расширения не требуются защищенные параметры, так как все его параметры считаются общедоступными сведениями. Для расширения требуется список отслеживаемых сертификатов, частота опроса и целевое хранилище сертификатов.
Файл шаблона Azure Key Vault для Linux
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"type": "string"
},
"location": {
"type": "string"
},
"autoUpgradeMinorVersion":{
"type": "bool"
},
"pollingIntervalInS":{
"type": "int"
},
"certificateStoreName":{
"type": "string"
},
"certificateStoreLocation":{
"type": "string"
},
"observedCertificates":{
"type": "string"
},
"msiEndpoint":{
"type": "string"
},
"msiClientId":{
"type": "string"
}
},
"resources": [
{
"type": "Microsoft.HybridCompute/machines/extensions",
"name": "[concat(parameters('vmName'),'/KVVMExtensionForLinux')]",
"apiVersion": "2022-03-10",
"location": "[parameters('location')]",
"properties": {
"publisher": "Microsoft.Azure.KeyVault",
"type": "KeyVaultForLinux",
"enableAutomaticUpgrade": true,
"settings": {
"secretsManagementSettings": {
"pollingIntervalInS": <polling interval in seconds, e.g. "3600">,
"certificateStoreName": <ignored on linux>,
"certificateStoreLocation": <disk path where certificate is stored, default: "/var/lib/waagent/Microsoft.Azure.KeyVault">,
"observedCertificates": <list of KeyVault URIs representing monitored certificates, e.g.: "https://myvault.vault.azure.net/secrets/mycertificate"
},
"authenticationSettings": {
"msiEndpoint": "http://localhost:40342/metadata/identity"
}
}
}
}
]
}
Файл шаблона Azure Key Vault для Windows
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmName": {
"type": "string"
},
"location": {
"type": "string"
},
"autoUpgradeMinorVersion":{
"type": "bool"
},
"pollingIntervalInS":{
"type": "int"
},
"certificateStoreName":{
"type": "string"
},
"linkOnRenewal":{
"type": "bool"
},
"certificateStoreLocation":{
"type": "string"
},
"requireInitialSync":{
"type": "bool"
},
"observedCertificates":{
"type": "string"
},
"msiEndpoint":{
"type": "string"
},
"msiClientId":{
"type": "string"
}
},
"resources": [
{
"type": "Microsoft.HybridCompute/machines/extensions",
"name": "[concat(parameters('vmName'),'/KVVMExtensionForWindows')]",
"apiVersion": "2022-03-10",
"location": "[parameters('location')]",
"properties": {
"publisher": "Microsoft.Azure.KeyVault",
"type": "KeyVaultForWindows",
"enableAutomaticUpgrade": true,
"settings": {
"secretsManagementSettings": {
"pollingIntervalInS": "3600",
"certificateStoreName": <certificate store name, e.g.: "MY">,
"linkOnRenewal": <Only Windows. This feature ensures s-channel binding when certificate renews, without necessitating a re-deployment. e.g.: false>,
"certificateStoreLocation": <certificate store location, currently it works locally only e.g.: "LocalMachine">,
"requireInitialSync": <initial synchronization of certificates e.g.: true>,
"observedCertificates": <list of KeyVault URIs representing monitored certificates, e.g.: "https://myvault.vault.azure.net"
},
"authenticationSettings": {
"msiEndpoint": "http://localhost:40342/metadata/identity"
}
}
}
}
]
}
Примечание.
Url-адреса наблюдаемого сертификата должны иметь форму https://myVaultName.vault.azure.net/secrets/myCertName
. Причина заключается в том, что /secrets
путь возвращает полный сертификат, включая закрытый ключ, в то время как /certificates
путь возвращает сертификат без закрытого ключа. Дополнительные сведения о сертификатах см. в обзоре ключей, секретов и сертификатов Azure Key Vault.
Сохраните шаблон и измените его по мере необходимости в вашей среде. Затем установите расширение Azure Key Vault на подключенные компьютеры, выполнив команду развертывания PowerShell , найденную ранее в этой статье.
Подсказка
Расширение Azure Key Vault требует, чтобы системно назначаемое удостоверение было присвоено для аутентификации в Key Vault. Дополнительные сведения см. в статье "Проверка подлинности в ресурсах Azure с помощью серверов с поддержкой Azure Arc".
Связанный контент
- Дополнительные сведения о расширениях виртуальных машин, поддерживаемых серверами с поддержкой Azure Arc.
- Узнайте, как развертывать, управлять и удалять расширения виртуальных машин с помощью Azure PowerShell, портала Azure или Azure CLI.
- Изучите сведения об устранении неполадок в руководстве по устранению неполадок с расширениями виртуальных машин.