Назад | Перейти на главную страницу

Каков наиболее надежный / устойчивый способ распространения файла на группу серверов Windows

При управлении одним из моих приложений мне нужно распространить небольшой текстовый файл в определенный каталог на нескольких серверах приложений и перезапустить службу, когда будет выпущена новая версия. В моем распоряжении довольно стандартный набор инструментов: SCCM, AD / GPO, Orchestrator и так далее.

Каков наиболее устойчивый с точки зрения эксплуатации способ распространения этого текстового файла на эти серверы, предполагая, что он будет периодически меняться?

Я бы порекомендовал ресурс файла конфигурации желаемого состояния и ресурс службы. Вот пример конфигурации, которую я создал:

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

При использовании ресурса файла конфигурации желаемого состояния, предложенного @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, которое решает указанную выше проблему, но я также думаю, что эти шаги тоже будут работать.

Я бы установил событие уведомления и запустил сценарий, чтобы скопировать файл и перезапустить службу. Видеть https://gallery.technet.microsoft.com/scriptcenter/Powershell-FileSystemWatche-dfd7084b

Просто установите и забудьте. Для подобных вещей вы также можете добавить запись в журнал событий.