Log Analytics ワークスペースを複数まとめてデプロイしてみた

 

Log AnalyticsのワークスペースのデプロイをARMテンプレートを利用して実施してみました。 テンプレートで指定するParameterをCSVファイルから読み込むようにしてみました。

今回は下記条件で実施してみました。

    • Log Analyticsワークスペースを3つ作成する
    • Log Analyticsワークスペースをテンプレートファイルを利用してデプロイする
    • パラメータはCSVファイルを利用する
    • パラメータはデプロイ時に指定する

※サンプルはGitHubにも公開しています。

1 .Log Analytics ワークスペースを作成するARMテンプレート

マイクロソフト様の下記サイトに記載の内容を参考(ほとんどそのままです)にしています。

https://docs.microsoft.com/ja-jp/azure/azure-monitor/learn/quick-create-workspace-posh#create-a-workspace

defaultValue値は環境に合わせて変更してください。(今回はSKUをPer2018で固定しています。)

{

“$schema”: “https://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#”,
“contentVersion”: “1.0.0.0”,
 ”parameters”: {
  ”workspaceName”: {
   ”type”: “String”,
   ”metadata”: {}
 },
 ”location”: {
  ”type”: “String”,
   ”defaultValue”: “eastus2”,
    ”metadata”: {}
 },
 ”sku”: {
  ”type”: “String”,
   ”allowedValues”: [
    ”PerGB2018″
   ],
   ”defaultValue”: “PerGB2018”,
    ”metadata”: {}
   }
 },
“resources”: [
 {
 ”type”: “Microsoft.OperationalInsights/workspaces”,
  ”name”: “[parameters(‘workspaceName’)]”,
  ”apiVersion”: “2015-11-01-preview”,
  ”location”: “[parameters(‘location’)]”,
  ”properties”: {
  ”sku”: {
  ”Name”: “[parameters(‘sku’)]”
 },
 ”features”: {
 ”searchVersion”: 1
}}}]}

.ARMテンプレートのパラメータを指定するCSVファイルを作成する

Log Analyticsワークスペースで指定する、パラメータは以下の3つになります。

    • ワークスペース名 (変数名;workspaceName)
    • ロケーション (変数名;location)
    • SKU (変数名;sku)

テスト用のパラメータCSVファイルは下記通り作成しています。

workspaceName,location,sku

test-201-20200328,eastus2,PerGB2018
test-202-20200328,eastus2,PerGB2018
test-203-20200328,japaneast,PerGB2018

3. Power ShellでARMテンプレートをデプロイする

デプロイ先のリソースグループ名、ARMテンプレートファイルのパス、CSVファイルのパスを指定してデプロイを実施します。

#Log Analyitcs ワークスペースデプロイ用Power Shell

$resourceGroupName = “デプロイ先のリソースグループ名”
$TemplateFilePath = “テンプレートファイルのパス”
$ImportCSVPath = “CSVのファイルのパス”

# Import Parameter Csv
$csv = Import-Csv -path $ImportCSVPath

# Template Deploy
foreach( $c in $csv ){

New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName `
 -TemplateFile $TemplateFilePath `
 -workspaceName $c.workspaceName `
 -location $c.location `
 -sku $c.sku
}

作成が成功すると、以下の通りにLog Analyticsのワークスペースが作成されたログが表示されます。

Outputs :

DeploymentDebugLogLevel :

DeploymentName : LogAnalytics_WorkSpace
ResourceGroupName : リソースグループ名
ProvisioningState : Succeeded
Timestamp : 作成時刻
Mode : Incremental
TemplateLink :
Parameters :
Name        Type          Value
=============== ================= ==========
workspaceName    String          test-203-20200328
location       String         japaneast
sku         String                                  PerGB2018

CSVで指定した値で作成した値で作成されている事が確認できます。