3

このシステム管理に関する質問のフォローアップ:

おそらく、 serverfaultに関するフィードバックはあまり得られないので、ここで試してみます。

私の主な関心事は、管理しなければならないデータベース、サービス、およびタスク/ジョブ間の依存関係を反映することです。

Powershell を検討するだけでなく、依存関係のモデル化と構成ターゲットの再利用が可能になるため、MSBuild の使用についても考えました。

言い換える と、データベース X を停止するときに、マシン D のサービス A、B、C を正しい順序で停止し、マシン F のタスク E を無効にできる柔軟なソリューションを開発するには、どのテクノロジを使用すればよいでしょうか?

…で、データベースYをダウンする際にサービスBとCを停止する部分を再利用したい。

4

1 に答える 1

5

PowerShell に精通していて、依存関係を操作したい場合は、psakeを試してください。それはどのようなものか:

psake script.ps1:-------
properties {
 $dbServer = 'sqlexpress'
 ...
}
task default -depend StopServer1, StopServer2

task StopS1 -depend MakeS1Backup, StopSqlServer1 {
 ...
}
task MakeS1Backup {
 ... make backup
}
task StopSqlServer1 {
 stop-service ...
}
# and anything similar to StopServer2

次に、次のように呼び出すことができます (さらにオプションがあります)。

Invoke-Psake script.ps1 
#or
Invoke-Psake script.ps1 -task StopS1 #calls only StopS1 task and all other scripts it depends on
#or
Invoke-Psake script.ps1 -task MakeS1Backup #only backups S1, it doesn't depend on anything else

動作 - サーバー 1 (タスク StopS1) を停止し、その前に、StopS1 が依存するすべてのタスクを処理します。そのため、S1 を停止する前に、S1 のバックアップが作成され、Sql サーバー 1 が停止されます。

非常に冗長で醜い (非常に強力ではありますが) msbuild 構成よりもはるかに優れています。

于 2010-05-14T20:19:41.577 に答える