SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

ARM テンプレートを使用して SQL Server の準備タスクを実行する

leave a comment

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

Written by Masayuki.Ozawa

5月 2nd, 2016 at 4:18 pm

Leave a Reply