В управлении одним из моих приложений я должен распределить небольшой текстовый файл определенному каталогу в ряде серверов приложений и перезапустить сервис, когда новая версия выставлена. У меня есть довольно стандартный набор инструментов в моем распоряжении, SCCM, AD/GPO, Дирижера, и т.д.
Что наиболее оперативно устойчивый путь состоит в том, чтобы распределить этот текстовый файл этим серверам учитывая, что он будет периодически изменяться?
Я бы порекомендовал ресурс файла конфигурации желаемого состояния и ресурс службы. Вот пример конфигурации, которую я создал:
Configuration UpdateApplicationFile
{
Param ($computername, $sourcefilepath, $destination)
node $computername
{
Service suspendservice
{
name = appservice
State = paused
}
file applicationfile
{
ensure = "present"
type = "file"
sourcepath = $sourcefilepath
DestinationPath = $destination
DependsOn = "[service]suspendservice"
}
service startservice
{
name = appservice
State = started
DependsOn = "[file]applicationfile"
}
}
}
Ресурс файла DSC https://technet.microsoft.com/en-us/library/dn282129.aspx
Я бы установил событие уведомления и запустил сценарий, чтобы скопировать файл и перезапустить службу. См. https://gallery.technet.microsoft.com/scriptcenter/Powershell-FileSystemWatche-dfd7084b
Просто установите и забудьте. Для подобных вещей вы также можете добавить запись в журнал событий
При использовании ресурса файла конфигурации желаемого состояния, как предложено @Davidw, я также рекомендую использовать свойство Checksum ( https://technet.microsoft.com/en-us/library/dn282129.aspx ).
Если вы не используете Checksum , файл никогда не будет обновлен, потому что вы сравниваете только имя файла или каталога, которое, как я предполагаю, вы не меняете, когда вносите изменения в файл. Указание свойства Checksum указывает DSC внести изменения, если SHA-1, SHA-256, SHA-512, createdDate или modifiedDate отличаются.
В связанной теме использование одного файлового ресурса DSC, рекомендованного @Davidw, будет работать , но я рекомендую настроить DSC с централизованным веб-сервером, чтобы вы могли управлять своими файлами / состояниями из центральной точки распространения ( http://www.systemcentercentral.com/day-1-intro-to-powershell-dsc -and-configuring-your-first-pull-server / ). Легче управлять файлами MOF из центра, иначе вы можете потерять отслеживание отдельных файлов MOF, работающих на каждом сервере.
Полное раскрытие - я разрабатываю программное обеспечение для управления конфигурацией для Windows, которое решает указанную выше проблему, но я также считаю, что это шаги тоже подойдут.