У нашего клиента есть решение, которое включает несколько продуктов, которые взаимодействуют друг с другом. Когда мы обновляем любую часть решения, мы должны предоставить руководство администратора для каждой операционной системы (XP, Windows 7, Windows Server 2008 и т. Д.). Гид рассказывает:
Обычно мы помещаем установочные файлы в сетевую папку и предоставляем сценарий PowerShell, который должен запускаться на рабочих станциях, которые клиент желает обновить. Этот сценарий может быть довольно сложным и может резко меняться от установки к установке.
Я думаю, есть ли платформа для облегчения такого распространения?
Используйте стандартный установщик (.msi), он позаботится о большинстве вещей. Посмотри на WiX для платформы с открытым исходным кодом для сборки установщика.
Нет никакой «волшебной пули», которая могла бы справиться с подобными вещами за вас. Я скептически отношусь к любому, кто скажет вам, что есть.
Я исхожу из опыта использования сценариев сборки, проверенных в VCS, так что моя предвзятость, вероятно, проявится здесь.
Я обращусь к паре вещей, упомянутых другими:
Установщик Windows, конечно, на первый взгляд кажется привлекательным, но это не «бесплатный обед». Если вы решите создавать пакеты установщика Windows, вам просто нужно будет инкапсулировать зависимости и логику вашего сценария в пакет установщика, возможно, с большим уродством, например, с большим количеством настраиваемых действий. Фактически, вы будете использовать установщик Windows в качестве среды сценариев с множеством встроенных особенностей и ограничений.
Если вы используете систему управления конфигурацией (Desired State Configuration, Puppet и т. Д.), Вы по-прежнему придется моделировать зависимости и логику. Осмелюсь предположить, что с системой управления конфигурацией вы столкнетесь с ограничениями возможностей платформы по описанию ваших зависимостей, и в этот момент вам все равно придется дополнить скриптами.
Я думаю, вы выбрали правильный путь со своим скриптом Powershell. Я бы прокомментировал, черт возьми, сценарий, и я бы работал очень сложно создать один сценарий (или, что более вероятно, набор небольших сценариев, которые вызываются из одного центрального сценария), который может обрабатывать все ваши сценарии установки. Я бы использовал программное обеспечение для контроля версий для поддержки этих скриптов. Поскольку это возможно для продуктов, которые вы устанавливаете из непрозрачных двоичных двоичных объектов, я бы встроил тестовую логику, чтобы проверить, действительно ли эти установщики работают.
Вы можете посмотреть на Puppet. Я использовал его для управления конфигурацией компьютеров на базе Unix, но он также работает с ОС Windows.