現在、ポータルから SQL Serve インストール済みのイメージを展開する際には、SQL Server の準備タスクとして、
- F/W の構成
- データ/ログ用ディスクの構成
- OLTP / DWH 用ワークロードの設定
- SQL Server 認証の設定
というような設定を実施することができます。
これらは、「preparingSqlServer.json」を使用したデプロイメントとして実装されているため、独自に作成した環境でも、実行することができますので軽くまとめてみたいと思います。
SQL Server の準備タスクでは、以下のような ARM テンプレートを使用することで実行できます。
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"virtualMachineName": {
"type": "String"
},
"location": {
"type": "String"
},
"adminUsername": {
"type": "String"
},
"adminPassword": {
"type": "SecureString"
},
"sqlStorageDisksCount": {
"type": "Int"
},
"sqlConnectivityType": {
"type": "String",
"allowedValues": [
"Private",
"Public",
"Local"
],
"defaultValue":"Private"
},
"sqlStorageWorkloadType": {
"type": "String",
"allowedValues": [
"General",
"OLTP",
"DW"
],
"defaultValue":"General"
},
"sqlPortNumber": {
"type": "Int"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Resources/deployments",
"name": "prepareSqlVmDeployment",
"apiVersion": "2015-01-01",
"properties": {
"mode": "Incremental",
"templateLink": {
"uri": "https://sqlvmgroup.blob.core.windows.net/singlevm/preparingSqlServer.json"
},
"parameters": {
"sqlVMName": {
"value": "[parameters('virtualMachineName')]"
},
"location": {
"value": "[parameters('location')]"
},
"adminUsername": {
"value": "[parameters('adminUsername')]"
},
"adminPassword": {
"value": "[parameters('adminPassword')]"
},
"disksCount": {
"value": "[parameters('sqlStorageDisksCount')]"
},
"diskSizeInGB": {
"value": 1023
},
"sqlEnginePort": {
"value": "[parameters('sqlPortNumber')]"
},
"workloadType": {
"value": "[parameters('sqlStorageWorkloadType')]"
},
"connectionType": {
"value": "[parameters('sqlConnectivityType')]"
},
"sqlVMPrepareModulesURL": {
"value": "https://sqlvmgroup.blob.core.windows.net/singlevm/PrepareSqlServer.ps1.zip"
},
"sqlVMPrepareConfigurationFunction": {
"value": "PrepareSqlServer.ps1\\PrepareSqlServer"
}
}
}
}
],
"outputs": {}
}
パラメーターとしては、以下のようなパラメーターを渡せば実行できます。
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"value": "japanwest"
},
"virtualMachineName": {
"value": "<仮想マシン名>"
},
"adminUsername": {
"value": "<os の Administrator ユーザー名>"
},
"adminPassword": {
"value": "<パスワード>"
},
"sqlConnectivityType": {
"value": "Private"
},
"sqlPortNumber": {
"value": 1433
},
"sqlStorageDisksCount": {
"value": 2
},
"sqlStorageWorkloadType": {
"value": "DW"
}
}
}
準備タスクでは SQL Server 認証の有効化も行うことができます。
SQL Server 認証を使用する場合は、「https://sqlvmgroup.blob.core.windows.net/singlevm/preparingSqlServer.json」ではなく、「https://sqlvmgroup.blob.core.windows.net/singlevm/preparingSqlServerSa.json」が使用されます。
SQL Server 認証を使用する場合には、SQL Server 認証向けのパラメーターを追加しておく必要があります。
"parameters": {
"sqlAuthenticationLogin": {
"type": "String"
},
"sqlAuthenticationPassword": {
"type": "SecureString"
}
},
{
"type": "Microsoft.Resources/deployments",
"name": "prepareSqlVmDeployment",
"apiVersion": "2015-01-01",
"properties": {
"mode": "Incremental",
"templateLink": {
"uri": "https://sqlvmgroup.blob.core.windows.net/singlevm/preparingSqlServerSa.json"
},
"parameters": {
"sqlUsername": {
"value": "[parameters('sqlAuthenticationLogin')]"
},
"sqlPassword": {
"value": "[parameters('sqlAuthenticationPassword')]"
},
}
},