我们的客户拥有包含多个彼此合作的产品的解决scheme。 当我们更新解决scheme的任何部分时,我们必须为每个操作系统(XP,Windows 7,Windows Server 2008等)提供pipe理员指南。 指南告诉:
基本上我们把安装文件放在networking文件夹中,并提供应该在客户希望更新的工作站上运行的powershell脚本。 这个脚本可能相当复杂,从安装到安装可能会发生很大的变化。
我猜是否有任何平台来缓解这种分配?
没有任何“魔法弹”可以为你处理这些事情。 我会怀疑任何告诉你的人。
我来自使用构build脚本签入VCS的背景,所以我的偏见可能会显示在这里。
我将介绍其他人提到的几个项目:
Windows Installer首先听起来很吸引人,但这不是“免费的午餐”。 如果您select构buildWindows Installer程序包,则只需将脚本中的依赖关系和逻辑封装到安装程序包中,可能会产生大量的自定义操作的丑陋行为。 实际上,您将使用Windows Installer作为一个脚本环境,其中包含一些内置的怪癖和限制。
如果你使用configurationpipe理系统(Desired State Configuration,Puppet等),你仍然需要build模依赖关系和逻辑。 有一个configurationpipe理系统,我敢说你会碰到平台描述你的依赖的能力的限制,在这一点上,你需要补充脚本。
我认为你是用Powershell脚本开始的。 我会对脚本进行评论,我会努力构build一个可以处理所有各种安装场景的单个脚本(或者更可能是由一个中央脚本调用的小脚本套件)。 我会使用版本控制软件来维护这些脚本。 尽pipe从不透明二进制blob安装的产品是可行的,但我会构buildtesting逻辑来validation这些安装程序是否正在运行。
使用标准的安装程序(.msi),这需要处理大部分事情。 看看WiX的开源平台来构build安装程序。
你可能想看看木偶。 我用它来pipe理基于Unix的计算机的configuration,但它也适用于Windows操作系统。