哪种工具/技术:数据库和相关服务的系统管理

时间:2010-05-14 20:06:00

标签: powershell msbuild systemmanagement

对此system management question的跟进:

由于我可能不会对serverfault收到太多反馈,我会在这里试一试。

我主要关心的是反映我必须管理的数据库,服务和任务/工作之间的依赖关系。

除了考虑Powershell之外,我甚至考虑过使用MSBuild,因为它允许建模依赖关系并重用配置目标。

换句话说: 我应该使用什么技术来开发一个灵活的解决方案,让我能够以正确的顺序停止机器D上的服务A,B和C并禁用任务E在关闭数据库X的机器F上?

...我想在关闭数据库Y时重复使用该部件来停止服务B和C.

1 个答案:

答案 0 :(得分: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 server 1停止之前等等。

我比msbuild配置更喜欢它,它非常冗长和丑陋(虽然非常强大)。