2016-04-11 6 views
1

ARMテンプレートベースのVM配備のための「Windowsの更新」を無効にする。関連する設定が見つかったenableAutomaticUpdatesin a recent Microsoft.Compute provider schemaしかし、私はこの設定を使ってARMテンプレートを見つけられませんでした。私はWindows VMの展開に関連して、Azure Quickstart templatesを検索しましたが、プロビジョニング時にWindows Updateサービスの動作を制御するつもりはありません。私はCLASSICデプロイメントモデルで利用可能なオプションを知っていますが、私は明示的にソリューションusing Azure Resource Manager Deployment modelを探しています。私の既存のARMテンプレートにプロパティwindowsConfigurationを使用する仮想マシンの配備用のAzure Resource ManagerテンプレートでWindowsの更新を無効にする

{ 
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", 
    "contentVersion": "1.0.0.0", 

... 

{ 
    "apiVersion": "2015-06-15", 
    "type": "Microsoft.Compute/virtualMachines", 
    "name": "[parameters('vmName')]", 
    "location": "[parameters('vmLocation')]", 
    "tags": { 
    "displayName": "VirtualMachine" 
    }, 
    "dependsOn": [ 
    "[concat('Microsoft.Storage/storageAccounts/', parameters('vmStorageAccountName'))]", 
    "[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]" 
    ], 
    "properties": { 
    "hardwareProfile": { 
     "vmSize": "[parameters('vmSize')]" 
    }, 
    "osProfile": { 
     "computerName": "[parameters('vmName')]", 
     "adminUsername": "[parameters('adminUsername')]", 
     "adminPassword": "[parameters('adminPassword')]" 
    }, 
    "windowsConfiguration": { 
     "enableAutomaticUpdates": false   
    }, 
    ... 

私の試みは失敗した展開と(Azureのポータルに示されている)このエラーメッセージにつながります。

タイプ「 」のオブジェクトのメンバー 'windowsConfiguration'を見つけることができませんでした。パス「properties.windowsConfiguration」、行1、位置 259(コード:BadRequest)私は構成プロパティenableAutomaticUpdatesを含むスキーマを参照してくださいしようとすると、バージョン2015年8月1日にMicrosoft.Computeをアップグレード

、このエラーメッセージでVMのデプロイメントが失敗します。明らかに私は何か間違っている。

{ 
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", 
    "contentVersion": "1.0.0.0", 

... 

{ 
    "apiVersion": "2015-08-01", 
    "type": "Microsoft.Compute/virtualMachines", 
    "name": "[parameters('vmName')]", 
    "location": "[parameters('vmLocation')]", 
    "tags": { 
    "displayName": "VirtualMachine" 
    }, 
    "dependsOn": [ 
    "[concat('Microsoft.Storage/storageAccounts/', parameters('vmStorageAccountName'))]", 
    "[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]" 
    ], 
    "properties": { 
    "hardwareProfile": { 
     "vmSize": "[parameters('vmSize')]" 
    }, 
    "osProfile": { 
     "computerName": "[parameters('vmName')]", 
     "adminUsername": "[parameters('adminUsername')]", 
     "adminPassword": "[parameters('adminPassword')]" 
    }, 
    "windowsConfiguration": { 
     "enableAutomaticUpdates": false   
    }, 
    ... 

場所「ウェストヨーロッパ」とタイプ「virtualMachines」の APIバージョン「2015年8月1日」が見つかりませ登録リソースプロバイダーません。サポートされている APIバージョンは '2015-05-01-preview、2015-06-15、2016-03-30'です。 サポート場所は 'eastus、eastus2、westus、centralus、 northcentralus、southcentralus、northeurope、westeurope、eastasia、 southeastasia、japaneast、japanwest、australiaeast、 australiasoutheast、brazilsouth' です。 (コード:NoRegisteredProviderFound)

私はプロビジョニング時にWindowsのアップデートを無効にするAzure Compute Provider schema version 2015-08-01を使用してARMテンプレートを作成する方法をいくつかのガイダンスを求めています。私の.NETソリューションはAzure SDK 2.7.1を使用しています。

答えて

2

私は解決にかなり近かった。私はスキーマを誤解しました。 According to this part of the schema windowsConfiguration is part of osProfile。 ARMテンプレートがこのように書かれている場合、Azure Resource Managerは私が望むものを理解しており、プロビジョニング時にAutomaticUpdateを無効にします。

{ 
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", 
    "contentVersion": "1.0.0.0", 

... 

{ 
    "apiVersion": "2015-06-15", 
    "type": "Microsoft.Compute/virtualMachines", 
    "name": "[parameters('vmName')]", 
    "location": "[resourceGroup().location]", 
    "tags": { 
    "displayName": "VirtualMachine" 
    }, 
    "dependsOn": [ 
    "[concat('Microsoft.Storage/storageAccounts/', parameters('vmStorageAccountName'))]", 
    "[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]" 
    ], 
    "properties": { 
    "hardwareProfile": { 
     "vmSize": "[parameters('vmSize')]" 
    }, 
    "osProfile": { 
     "computerName": "[parameters('vmName')]", 
     "adminUsername": "[parameters('adminUsername')]", 
     "adminPassword": "[parameters('adminPassword')]", 
     "windowsConfiguration": { 
     "enableAutomaticUpdates": false   
     } 
    }, 
    ... 

信じられないほどのツールResource Explorer in Azure Portalは、特定のリソースの現在の設定を示しています。ご覧のとおり、EnableAutomaticUpdatesはfalseに設定されています。

{ 
    "properties": { 
     "vmId": "10400cdd-26be-4be4-99d8-2d5c22d96911", 
     "hardwareProfile": { 
      "vmSize": "Standard_D2" 
     }, 
     "storageProfile": { 
      "imageReference": { 
       "publisher": "MicrosoftWindowsServer", 
       "offer": "WindowsServer", 
       "sku": "2012-R2-Datacenter", 
       "version": "latest" 
      }, 
      "osDisk": { 
       "osType": "Windows", 
       "name": "osdisk", 
       "createOption": "FromImage", 
       "vhd": { 
        "uri": "this_is_not_for_public_use" 
       }, 
       "caching": "ReadWrite" 
      }, 
      "dataDisks": [] 
     }, 
     "osProfile": { 
      "computerName": "this_is_not_for_public_use", 
      "adminUsername": "this_is_not_for_public_use", 
      "windowsConfiguration": { 
       "provisionVMAgent": true, 
       "enableAutomaticUpdates": false 
      }, 
      "secrets": [] 
     }, 
     "networkProfile": { 
      "networkInterfaces": [ 
       { 
        "id": "this_is_not_for_public_use/providers/Microsoft.Network/networkInterfaces/ComputeNode15-Nic" 
       } 
      ] 
     }, 
     "provisioningState": "Creating" 
    }, 
    "id": "this_is_not_for_public_use/providers/Microsoft.Compute/virtualMachines/this_is_not_for_public_use", 
    "name": "this_is_not_for_public_use", 
    "type": "Microsoft.Compute/virtualMachines", 
    "location": "westeurope", 
    "tags": { 
     "displayName": "VirtualMachine" 
    } 
} 

そして、リソースグループの場所を使用するようにテンプレートを変更しました。ほとんどの場合、便利なオプションです。このヒントを提供し、私を正しい方向に押し上げる貴重なフィードバックのために、Martyn Cに感謝します。

+0

ああ、私はまったくそれを逃した、申し訳ありません!あなたがそれを整理してうれしい –

1

上記のエラーメッセージを確認すると、 "westeurope"にする必要がある場合は、場所を "西ヨーロッパ"として渡しています。地域名はすべて小文字で渡す必要があります。

JSONテンプレートの次の行、"location": "[resourceGroup().location]"を使用すると、リソースグループの場所を使用するほうが簡単です。

+0

"West Europe"を位置文字列として使用することは、https://github.com/Azure/azure-resource-manager-schemas/blob/master/schemas/2015-01-01/deploymentTemplate.json#に従って有効です。 L307 –

+0

'location'プロパティではありません。ポータルからエクスポートしたばかりのテンプレートは、すべて「北欧」または「西欧」です。リンクが別のパラメータを参照しています。 –

+0

これらの展開は数か月から実行されます。テンプレートが別のスキーマを参照している可能性があります。 https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.jsonを参照する最初の行に注意してください。 ARMテンプレートに違いはありますか? –