【Management】DPM 2007 の初期設定を自動化 その2 DPM保護エージェントをインストールする

※今回ちょっと長いです。すんません。

DPMの環境設定を自動化しようシリーズの 2 回目です。

  1. バックアップ領域となるディスクを認識させる
  2. 保護対象となるサーバー(保護サーバー)にエージェントをインストールする ← 今回
  3. 保護グループを作成する

前回はセットアップ直後のDPMに、ボリュームを追加してストレージプールを作成しました。

【Management】DPM 2007 の初期設定を自動化 その1 ディスクを追加する

今回は、保護対象となるサーバーに対し、スクリプトを併用してエージェントをインストールしてみます。

ただ、エージェントのインストール自体は、できることならGUIから行ったほうがよいです。なぜならば、そのほうがはるかに簡単だからです。DPMサーバーと保護サーバーの間に Firewall があるためにRPCを使用したリモートからのプッシュインストールが行えないといった理由が無い限りは、管理コンソールから行ってください。

とはいえ、あえて手動で行ってみると、リモート管理に関する汎用的で細かなスキルを身につけることができますので、スキルアップを目的に挑戦してみるのならばよいかもです。

では、やってみましょう。

エージェントを手動でインストールするには2つのステップが必要です。

① DPM保護エージェントを保護サーバーにインストール
② DPMサーバーに、エージェントがインストールされた保護サーバーを認識させる(PowerShell)

それでははじめましょう。

① DPM保護エージェントを保護サーバーにインストール

保護エージェントのインストールの流れは以下の通りです。

  • 保護サーバーの Windows Firewall サービスを停止する(無効にするのではなく、サービスを停止する) 
  • 保護サーバーにエージェントをインストール
  • 保護エージェントの修正パッチがあれば、それを適用する
  • Windows Firewall サービスを起動
  • 保護エージェントに対して通信を許可するように Windows Firewall を設定する

上のリストにはとても重大な問題が含まれています。

それは、手順の一番上にある、保護サーバー上の Firewall サービスの停止という作業です「無効」ではありません。「停止」です。「停止」しておかないと、以下のように、エージェントのインストール時に 80070643 エラーが発生して DPMAgentInstaller が失敗します。これは、どうやら各国語にローカライズさらたバージョンでのみ発生する問題のようです。

dpmagentinstaller_error_80070643
Installing agent and configure for dpmserver =[ServerName]
DPMAgentInstaller failed with errorcode =8070643, error says:
Check log files in [WINDIR]\Temp\MSDPM*.LOG
Press Enter key to close the window

が、慣れた方ならば何か違和感を感じますよね?そうです。Firewallサービスを無効にするならまだしも、停止してしまったらリモートからの通信を受け付けられないじゃんか!ということです。リモートコンピュータのサービスの停止は SC コマンドで簡単に行えます。が、Firewall サービスを停止してしまうと、二度とコマンドを受け付けることができなくなります。当然、Firewall サービスを起動することせえもできなくなりますから、これはもう、厄介どころの騒ぎではありません。現時点では、管理コンソールを使わず手動でインストールする場合には、リモートからのインストール制御は事実上不可能であると言ってもよいでしょう。

誠に残念ですが、ここでは保護サーバー上でバッチファイルを実行するという前提でお話を進めていきます。

ーー 余談 ーー

実は、舞台裏を明かしますと、問題はこれだけではありませんでした。

以下のバッチファイルを見てください。ご覧頂くとお分かりの通り、

Firewallサービスの停止 → エージェントのインストール → Firewallサービスの起動

までを一気にやってしまおうとしています。こうしたバッチファイルを WinRS で保護サーバーに発行してしまえば、一度に処理を指示できることになるので、Windows Firewall サービスが停止してしまってもうまくいくかなと考えたのですが....どうしてもインストールの途中で処理が止まってしまい、うまくいきませんでした。原因追究にまるまる1日使ってしまいましたが、結局ダメでした。

net stop MpsSvc \\DJ-DPM01\i386\DPMAgentInstaller.exe /q DJ-DPM01.Example64.jp net start MpsSvc

WinRM についてご存じない方は、以下の記事をご参照ください

せっかくなので、WinRM/WinRS 関連のTIPSをご紹介しておきます。

上記のようなバッチファイルをWinRSでリモートコンピュータに発行しようとすると、既定では以下のように「アクセスが拒否されました」エラーが発生します。

image

これは、発行先のコンピュータを経由してさらに別のコンピュータ(この場合には \\DJ-DPM01 )にアクセスしようとしているからです。おそらくお聞きになったことがあると思いますが、あるコンピュータを経由して別のコンピュータに接続する場合には、デリゲート(委任)機能を有効にしなければなりません。

委任を有効にするには、「Active Directory ユーザーとコンピュータ」で保護サーバーのプロパティを開き、[委任]タブで、「任意のサービスへの委任でこのコンピュータを信頼する」をチェックします。

image

 エージェントをインストールするには、保護サーバー上で、DPMサーバの \Program Files\Microsot DPM\DPMAgents\RA\<i386 or amd64> 配下にある DPMAgentInstaller.exe を、DPMサーバー名を引数として実行します。つまり、以下のようなかんじです。

DPMAgentInstaller.exe /q DJ-DPM01.Example64.jp

保護サーバーのプラットフォームに合わせて、i386 か amd64 は選択してください。

この操作をリモートの保護サーバー上で実行させるわけですから、DPMサーバー上の i386 または adm64 フォルダを共有化しておくとよいでしょう。

i386 フォルダを、i386 という名前で共有化したとすれば、保護サーバーからは以下のようにして実行することができます。

\\<DPMServerName>\i386\DPMAgentInstaller.exe /q DJ-DPM01.Example64.jp

エージェントのインストールが完了したら、Firewallサービスを起動しておきましょう。

次に 保護サーバー側の Windows Firewall の設定を行います。本来は SetDpmServer.exe というコマンドで行うのですが、やはりローカライズ版では不具合があるらしく手動でFirewallの例外の設定を行う必要があります。もちろん、DPM管理コンソールからインストールすれば自動的に例外を作成してくれます。

DPM管理コンソールを使用してリモートインストールを行うと、DPMRA.exe というプログラムに対して、以下のような例外ルールが作成されます。

 image image image

上記と同じルールをコマンドから実施するには、おなじみ netsh を仕様します。

netsh advfirewall firewall add rule name="dpmra" dir=In action=Allow protocol=Any Program="%PROGRAMFILES%Microsoft Data Protection Manager\DPM\bin\DPMRA.exe"

この後、再起動すれば保護サーバー側の作業は完了です。

以上の作業をバッチファイルで表現すると、以下の通りです。

net stop MpsSvc \\<DPMServerName>\i386\DPMAgentInstaller.exe /q DJ-DPM01.Example64.jp net start MpsSvc netsh advfirewall firewall add rule name="dpmra" dir=In action=Allow protocol=Any Program="%PROGRAMFILES%Microsoft Data Protection Manager\DPM\bin\DPMRA.exe"

② DPMサーバーに、エージェントがインストールされた保護サーバーを認識させる(PowerShell)

仕上げの作業として、DPMサーバーに保護サーバーを認識させます。これは専用の PS1 ファイルが提供されています。

DPM管理シェルを起動して、以下のパスに移動してください。

C:\Program Files\Microsoft DPM\DPM\bin

ここで、Attach-ProductionServer.ps1 を以下の書式で実行します。引数を指定しなければ、プロンプトが表示されます。 

Attach-ProductionServer.ps1 <DPM server name> <production server name> <user name> <password> <domain>.

実行結果例を以下に示します。

 image

これで完了です。

以下のように、DPM管理コンソールにエージェントがリストされていれば成功です。

image

エージェントの更新欄に「利用可能な更新」が表示されている場合にはエージェントをアップグレードできますので、クリックして最新にしておきましょう。

いやー長かったですね。とても面倒です。

やはり、手動ではなく、管理コンソールを使用することをお勧めします。

次回は、保護グループの作成を行いましょう。