Какой инструмент / технология: Управление системой для баз данных и зависимых сервисов - PullRequest
3 голосов
/ 15 мая 2010

Продолжение по этому вопросу управления системой :

Поскольку я, вероятно, не получу много отзывов о serverfault Я попробую здесь.

Моя главная задача - отразить зависимости между базами данных, службами и задачами / заданиями, которыми мне придется управлять.

Помимо рассмотрения Powershell, я даже думал об использовании MSBuild, поскольку он позволял бы моделировать зависимости и повторно использовать цели конфигурации.

Другими словами: Какую технологию я должен использовать, чтобы разработать гибкое решение, которое позволит мне остановить обслуживание A, B и C на машине D в правильном порядке и отключить задачу E на машина F при сбое базы данных X?

... и я хотел бы повторно использовать деталь для остановки службы B и C при отключении базы данных Y.

1 Ответ

5 голосов
/ 15 мая 2010

Если вы знакомы с 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, которая очень многословна и безобразна (хотя и очень мощна).

...