对此system management question的跟进:
由于我可能不会对serverfault收到太多反馈,我会在这里试一试。
我主要关心的是反映我必须管理的数据库,服务和任务/工作之间的依赖关系。
除了考虑Powershell之外,我甚至考虑过使用MSBuild,因为它允许建模依赖关系并重用配置目标。
换句话说: 我应该使用什么技术来开发一个灵活的解决方案,让我能够以正确的顺序停止机器D上的服务A,B和C并禁用任务E在关闭数据库X的机器F上?
...我想在关闭数据库Y时重复使用该部件来停止服务B和C.
答案 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配置更喜欢它,它非常冗长和丑陋(虽然非常强大)。