現在、ポータルから 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')]" }, } },