2016年11月5日土曜日

System Center 2016 Operations Managerのセットアップ 2/2

System Center 2016 Operations Managerのセットアップに必要なアカウント(サービスアカウント)を準備します。

アクションアカウント、構成サービスのアカウント、データウェアハウス用の読み取りと書き込みのアカウントをドメインユーザーとして作成します。


作成したサービスアカウントのうち、アクションアカウント、構成サービスのアカウントをManagement Serverのローカル管理者グループに追加します。本来ならば構成サービスのアカウントのみで良いのです。が、Linuxを監視する際にアクションアカウントをローカル管理者グループに追加する必要があります。


データウェアハウス用の読み取りと書き込みのアカウントは、SQL Serverのログイン権限を付与しておきます。



この後は、SQL Server System CLR TypesとReport Viewerを入れるのです。
が、事前に入れた2012用のSQL Server System CLR TypesとReport Viewer 2012では、インストールの前提条件をパスしないことがわかりました。
2014用のSQL Server System CLR TypesとReport Viewer 2015を入れましょう。

続いて、必要な「役割と機能」を追加します。




上記をGet-WindowsFeatureでリストアップしてみました。
Display Name                                            Name                       Install State
------------                                            ----                       -------------

[X] Web Server (IIS)                                    Web-Server                     Installed
    [X] Web Server                                      Web-WebServer                  Installed
        [X] Common HTTP Features                        Web-Common-Http                Installed
            [X] Default Document                        Web-Default-Doc                Installed
            [X] Directory Browsing                      Web-Dir-Browsing               Installed
            [X] HTTP Errors                             Web-Http-Errors                Installed
            [X] Static Content                          Web-Static-Content             Installed
        [X] Health and Diagnostics                      Web-Health                     Installed
            [X] HTTP Logging                            Web-Http-Logging               Installed
            [X] Request Monitor                         Web-Request-Monitor            Installed
        [X] Performance                                 Web-Performance                Installed
            [X] Static Content Compression              Web-Stat-Compression           Installed
        [X] Security                                    Web-Security                   Installed
            [X] Request Filtering                       Web-Filtering                  Installed
            [X] Windows Authentication                  Web-Windows-Auth               Installed
        [X] Application Development                     Web-App-Dev                    Installed
            [X] .NET Extensibility 3.5                  Web-Net-Ext                    Installed
            [X] .NET Extensibility 4.6                  Web-Net-Ext45                  Installed
            [X] ASP.NET 3.5                             Web-Asp-Net                    Installed
            [X] ASP.NET 4.6                             Web-Asp-Net45                  Installed
            [X] ISAPI Extensions                        Web-ISAPI-Ext                  Installed
            [X] ISAPI Filters                           Web-ISAPI-Filter               Installed
    [X] Management Tools                                Web-Mgmt-Tools                 Installed
        [X] IIS Management Console                      Web-Mgmt-Console               Installed
        [X] IIS 6 Management Compatibility              Web-Mgmt-Compat                Installed
            [X] IIS 6 Metabase Compatibility            Web-Metabase                   Installed
[X] .NET Framework 3.5 Features                         NET-Framework-Features         Installed
    [X] .NET Framework 3.5 (includes .NET 2.0 and 3.0)  NET-Framework-Core             Installed
[X] .NET Framework 4.6 Features                         NET-Framework-45-Fea...        Installed
    [X] .NET Framework 4.6                              NET-Framework-45-Core          Installed
    [X] ASP.NET 4.6                                     NET-Framework-45-ASPNET        Installed
    [X] WCF Services                                    NET-WCF-Services45             Installed
        [X] HTTP Activation                             NET-WCF-HTTP-Activat...        Installed
[X] Windows Process Activation Service                  WAS                            Installed
    [X] Process Model                                   WAS-Process-Model              Installed
    [X] Configuration APIs                              WAS-Config-APIs                Installed

今回のセットアップは、MSDN版のISOを使用していますが、ISOをマウントしたところ、実行ファイルがあるのみ。


これを実行


解凍先を指定するようですね。


そのまま回答すると、怒られます。読み取り専用ですので。


ということで、記憶域プールなFドライブへ解凍します。



無事にインストール用バイナリーが出てきました。


setup.exeを起動します。


更新プログラムを含めてインストールします。


マネジメントサーバー、管理コンソール、Webコンソールをインストールします。


インストール先は、Fドライブに変更


Report Viewerがインストール要件を満たしませんでした。


Report Viewer 2015が必要ですが、


先に2014用のSQL Server System CLR Typesをダウンロード/インストールします。








続いてReport Viewer 2015をインストールします。





再度、前提条件を確認します。今回は問題無し。


管理グループを設定します。


ライセンス条項の確認します。


データベースを指定します。


データウェアハウスのデータベースを指定します。


Webコンソールをホストするサイトを指定します。


認証方式を指定します。


冒頭で作成したサービスアカウントを設定します。



設定のサマリーです。




30分ほどでインストール完了。



上記の警告を解消するため、PowerShellでプロダクトキーを設定します。

System Center 2016 Operations Managerのセットアップ 1/2

SCOMのAzure Resource Manager VM TempleteでVMを作りましたので、まずSQL Server 2016を入れます。
以下、備忘録です。

setupを起動し、Installationを選択


SQL Serverの新規インストールを選択

ちなみに、ここからManagement Studioがインストール可能。

プロダクトキーの入力画面


ライセンス条項の画面


更新プログラムの確認および適用画


インストールルールの画面、エラーがない事を確認


SCOMは、データベースエンジン以外に、フルテキスト検索が必要


ドキュメントを追加
そして、インストール先をFドライブ(8本のディスクを記憶域プールでまとめたもの)へ変更


デフォルトのインスタンスを指定


SQL Serverの各サービスアカウントとして、ドメインのアカウントを指定


照合順序は、英語環境での既定値を選択


認証は、Windows認証のままとし、管理者アカウントとしてdomain adminsを追加


データベースの格納先がFドライブになっていることを確認


tempDBは、既定値のまま


ファイルストリームは、既定値のまま


レポーティングサービスは、インストールのみを選択


設定値サマリー






8本のディスクを記憶域プールでまとめたドライブでは、10分ほどでインストール完了


Download SQL Server Management Studio (SSMS)より最新版をダウンロードしてインストール



次回は、System Center 2016 Operations Managerのセットアップに必要なアカウントの準備、インストールをまとめます。

SCOMのAzure Resource Manager VM Templete

データディスク8本を記憶域プールで束ねて、SCOMのバイナリーやDBを置くドライブとしているラボを構成しています。
新規作成から、データディスク8本を追加するのがだんだん面倒になりました。。。

そこで、SCOMのAzure Resource Manager VM Templeteを書いてみました。
ベースは、
githubのAzure Resource Manager テンプレートをカスタマイズしてみた - RDP接続できるVMテンプレート
です。

テンプレートをデプロイする際の前提は、リソースグループ、ストレージアカウント、仮想ネットワークは、構築済みであること。

今後の改善事項は、NICにDNSサーバー設定を入れ込むことでしょうか。

デプロイの画面。

実際にデプロイ後、ディスクの管理で確認。

記憶域プールでディスクをまとめたところ。


では、コードを下記に掲載しておきます。
{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vmName": {
      "type": "string",
      "defaultValue": "arscom2016",
      "metadata": {
        "description": "name for the Virtual Machine."
      }
    },
    "dnsLabelPrefix": {
      "type": "string",
      "defaultValue": "arscom2016",
      "metadata": {
        "description": "Unique DNS Name for the Public IP used to access the Virtual Machine."
      }
    },
    "adminUsername": {
      "type": "string",
      "metadata": {
        "description": "Username for the Virtual Machine."
      }
    },
    "adminPassword": {
      "type": "securestring",
      "metadata": {
        "description": "Minimum 12 characters. Password for the Virtual Machine."
      }
    },
    "windowsOSVersion": {
      "type": "string",
      "defaultValue": "2016-Datacenter",
      "allowedValues": [
        "2012-R2-Datacenter"
        "2016-Datacenter"
      ],
      "metadata": {
        "description": "The Windows version for the VM. This will pick a fully patched image of this given Windows version. Allowed values: 2012-R2-Datacenter, 2016-Datacenter."
      }
    },
    "vmSize": {
      "type": "string",
      "defaultValue": "Standard_DS3",
      "allowedValues": [
        "Standard_DS3_v2",
        "Standard_DS3"
      ]
    },
    "vmDataDiskSize": {
      "type": "int",
      "defaultValue": 33
    },
    "rdpFrontend": {
      "type": "int",
      "defaultValue": 50001,
      "metadata": {
        "description": "Public port number for RDP"
      }
    },
    "VNetName": {
      "type": "string",
      "defaultValue": "arejpVNet1"
    },
    "VSubnetName": {
      "type": "string",
      "defaultValue": "Subnet"
    },
    "storageAccountName": {
      "type": "string",
      "defaultValue": "arejpstorageact0"
    }
  },
  "variables": {
    "sizeOfDiskInGB": "[parameters('vmDataDiskSize')]",
    "imagePublisher": "MicrosoftWindowsServer",
    "imageOffer": "WindowsServer",
    "vmName": "[parameters('vmName')]",
    "vmSize": "[parameters('vmSize')]",
    "OSDiskName": "[concat(variables('vmName'),'-os')]",
    "dataDisk1VhdName": "[concat(variables('vmName'),'-data1')]",
    "dataDisk2VhdName": "[concat(variables('vmName'),'-data2')]",
    "dataDisk3VhdName": "[concat(variables('vmName'),'-data3')]",
    "dataDisk4VhdName": "[concat(variables('vmName'),'-data4')]",
    "dataDisk5VhdName": "[concat(variables('vmName'),'-data5')]",
    "dataDisk6VhdName": "[concat(variables('vmName'),'-data6')]",
    "dataDisk7VhdName": "[concat(variables('vmName'),'-data7')]",
    "dataDisk8VhdName": "[concat(variables('vmName'),'-data8')]",
    "nicName": "[concat(variables('vmName'),'-nic01')]",
    "existingVNetName": "[parameters('VNetName')]",
    "subnetName": "[parameters('VSubnetName')]",
    "publicIPAddressName": "[concat(variables('vmName'),'-PublicIP01')]",
    "publicIPAddressType": "Dynamic",
    "vmStorageAccountContainerName": "[concat(variables('vmName'),'-vhds')]",
    "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',variables('existingVNetName'))]",
    "subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
    "lbName": "[concat(parameters('vmName'),'-lb01')]",
    "lbInboundNatRulesName": "[concat(parameters('vmName'),variables('lbName'),'-InboundNatRules01')]",
    "lbFrontEndName": "[concat(parameters('vmName'),variables('lbName'),'-FrontEnd01')]",
    "lbBackendAddressPoolName": "[concat(parameters('vmName'),variables('lbName'),'-BackendPool01')]",
    "publicIPAddressID": "[resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName'))]",
    "lbID": "[resourceId('Microsoft.Network/loadBalancers',variables('lbName'))]",
    "lbFrontEndIPConfigID": "[concat(variables('lbID'),'/frontendIPConfigurations/',variables('lbFrontEndName'))]",
    "lbPoolID": "[concat(variables('lbID'),'/backendAddressPools/',variables('lbBackendAddressPoolName'))]",
    "lbNatID": "[concat(variables('lbID'),'/inboundNatRules/',variables('lbInboundNatRulesName'))]",
    "apiVersion": "2015-06-15"
  },
  "resources": [
    {
      "apiVersion": "[variables('apiVersion')]",
      "type": "Microsoft.Network/publicIPAddresses",
      "name": "[variables('publicIPAddressName')]",
      "location": "[resourceGroup().location]",
      "properties": {
        "publicIPAllocationMethod": "[variables('publicIPAddressType')]",
        "dnsSettings": {
          "domainNameLabel": "[parameters('dnsLabelPrefix')]"
        }
      }
    },
    {
      "apiVersion": "[variables('apiVersion')]",
      "name": "[variables('lbName')]",
      "type": "Microsoft.Network/loadBalancers",
      "location": "[resourceGroup().location]",
      "dependsOn": [
        "[concat('Microsoft.Network/publicIPAddresses/', variables('publicIPAddressName'))]"
      ],
      "properties": {
        "frontendIPConfigurations": [
          {
            "name": "[variables('lbFrontEndName')]",
            "properties": {
              "publicIPAddress": {
                "id": "[variables('publicIPAddressID')]"
              }
            }
          }
        ],
        "backendAddressPools": [
          {
            "name": "[variables('lbBackendAddressPoolName')]"
          }
        ],
        "inboundNatRules": [
          {
            "name": "[variables('lbInboundNatRulesName')]",
            "properties": {
              "frontendIPConfiguration": {
                "id": "[variables('lbFrontEndIPConfigID')]"
              },
              "protocol": "tcp",
              "frontendPort": "[parameters('rdpFrontend')]",
              "backendPort": 3389,
              "enableFloatingIP": false
            }
          }
        ]
      }
    },
    {
      "apiVersion": "[variables('apiVersion')]",
      "type": "Microsoft.Network/networkInterfaces",
      "name": "[variables('nicName')]",
      "location": "[resourceGroup().location]",
      "dependsOn": [
        "[concat('Microsoft.Network/loadBalancers/',variables('lbName'))]"
      ],
      "properties": {
        "ipConfigurations": [
          {
            "name": "ipconfig1",
            "properties": {
              "privateIPAllocationMethod": "Dynamic",
              "subnet": {
                "id": "[variables('subnetRef')]"
              },
              "loadBalancerBackendAddressPools": [
                {
                  "id": "[variables('lbPoolID')]"
                }
              ],
              "loadBalancerInboundNatRules": [
                {
                  "id": "[variables('lbNatID')]"
                }
              ]
            }
          }
        ]
      }
    },
    {
      "apiVersion": "[variables('apiVersion')]",
      "type": "Microsoft.Compute/virtualMachines",
      "name": "[variables('vmName')]",
      "location": "[resourceGroup().location]",
      "dependsOn": [
        "[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
      ],
      "properties": {
        "hardwareProfile": {
          "vmSize": "[variables('vmSize')]"
        },
        "osProfile": {
          "computerName": "[variables('vmName')]",
          "adminUsername": "[parameters('adminUsername')]",
          "adminPassword": "[parameters('adminPassword')]"
        },
        "storageProfile": {
          "imageReference": {
            "publisher": "[variables('imagePublisher')]",
            "offer": "[variables('imageOffer')]",
            "sku": "[parameters('windowsOSVersion')]",
            "version": "latest"
          },
          "osDisk": {
            "name": "[variables('OSDiskName')]",
            "vhd": {
              "uri": "[concat('http://',parameters('storageAccountName'),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',variables('OSDiskName'),'.vhd')]"
            },
            "caching": "ReadWrite",
            "createOption": "FromImage"
          },
          "dataDisks": [
            {
              "name": "[variables('dataDisk1VhdName')]",
              "diskSizeGB": "[variables('sizeOfDiskInGB')]",
              "lun": 0,
              "vhd": {
                "uri": "[concat('http://',parameters('storageAccountName'),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',variables('dataDisk1VhdName'),'.vhd')]"
              },
              "createOption": "Empty"
            },
            {
              "name": "[variables('dataDisk2VhdName')]",
              "diskSizeGB": "[variables('sizeOfDiskInGB')]",
              "lun": 1,
              "vhd": {
                "uri": "[concat('http://',parameters('storageAccountName'),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',variables('dataDisk2VhdName'),'.vhd')]"
              },
              "createOption": "Empty"
            },
            {
              "name": "[variables('dataDisk3VhdName')]",
              "diskSizeGB": "[variables('sizeOfDiskInGB')]",
              "lun": 2,
              "vhd": {
                "uri": "[concat('http://',parameters('storageAccountName'),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',variables('dataDisk3VhdName'),'.vhd')]"
              },
              "createOption": "Empty"
            },
            {
              "name": "[variables('dataDisk4VhdName')]",
              "diskSizeGB": "[variables('sizeOfDiskInGB')]",
              "lun": 3,
              "vhd": {
                "uri": "[concat('http://',parameters('storageAccountName'),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',variables('dataDisk4VhdName'),'.vhd')]"
              },
              "createOption": "Empty"
            },
            {
              "name": "[variables('dataDisk5VhdName')]",
              "diskSizeGB": "[variables('sizeOfDiskInGB')]",
              "lun": 4,
              "vhd": {
                "uri": "[concat('http://',parameters('storageAccountName'),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',variables('dataDisk5VhdName'),'.vhd')]"
              },
              "createOption": "Empty"
            },
            {
              "name": "[variables('dataDisk6VhdName')]",
              "diskSizeGB": "[variables('sizeOfDiskInGB')]",
              "lun": 5,
              "vhd": {
                "uri": "[concat('http://',parameters('storageAccountName'),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',variables('dataDisk6VhdName'),'.vhd')]"
              },
              "createOption": "Empty"
            },
            {
              "name": "[variables('dataDisk7VhdName')]",
              "diskSizeGB": "[variables('sizeOfDiskInGB')]",
              "lun": 6,
              "vhd": {
                "uri": "[concat('http://',parameters('storageAccountName'),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',variables('dataDisk7VhdName'),'.vhd')]"
              },
              "createOption": "Empty"
            },
            {
              "name": "[variables('dataDisk8VhdName')]",
              "diskSizeGB": "[variables('sizeOfDiskInGB')]",
              "lun": 7,
              "vhd": {
                "uri": "[concat('http://',parameters('storageAccountName'),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',variables('dataDisk8VhdName'),'.vhd')]"
              },
              "createOption": "Empty"
            }
          ]
        },
        "networkProfile": {
          "networkInterfaces": [
            {
              "id": "[resourceId('Microsoft.Network/networkInterfaces',variables('nicName'))]"
            }
          ]
        },
        "diagnosticsProfile": {
          "bootDiagnostics": {
            "enabled": "true",
            "storageUri": "[concat('http://',parameters('storageAccountName'),'.blob.core.windows.net')]"
          }
        }
      }
    }
  ]
}