您有多种选择:
在每台服务器上手动安装软件
如果您不经常更改服务器的数量并且您没有很多服务器,您可以只在每台服务器中进行 RDP 并手动安装您的软件。
在 Service Fabric 中将其作为单独的服务运行
正如 JunRam 所说,您可以在 Service Fabric 中运行来宾可执行文件。假设您的软件是一个没有安装程序的简单程序,您可以为其创建一个无状态服务包并将 InstanceCount 设置为 -1。这意味着,服务将由 Service Fabric 放置在每个节点上。如果程序意外终止,Service Fabric 将自动重新启动程序,并且在您横向扩展时它还会将其放置在新节点上。
使用虚拟机扩展
Some software 可以直接集成到虚拟机的 ARM(Azure 资源管理器)模板中。 Azure Service Fabric 的默认 ARM 模板使用此机制在每台服务器上自动安装“Azure 诊断”代理和 Service Fabric 代理。要获取 Service Fabric 的 ARM 模板,您可以使用 quickstart sample、使用 Azure 门户向导并在创建集群之前将其导出,或者将 export an existing resource group 作为模板。
还有一个Custom Script Extension 允许您运行 CMD 或 PowerShell 脚本。在这样的脚本中,您可以例如使用Chocolatey、Boxstarter 或手动安装您的程序。
这种方法的优势在于,它会将软件作为基础架构部署的一部分进行安装,并且当您扩展集群时,它还会自动在每个新节点上安装软件。
使用 PowerShell DSC、Puppet、Chef 等自动化工具
如果您要安装的程序不能直接作为虚拟机扩展使用并且不能使用“自定义脚本扩展”安装,您可以使用Azure Automation DSC(所需状态配置)来自动安装附加软件在您的节点上。 DSC 需要您的虚拟机上的代理,该代理可作为虚拟机扩展使用。有一个ARM-based template 显示了如何将扩展集成到虚拟机规模集。您可以将此扩展包含在您的 Service Fabric ARM 模板中并重新部署它以在您的每个节点上安装该扩展。
之后,您可以使用 DSC 的Package 功能来安装您的软件。
请注意,创建此解决方案可能需要大量时间。然而,PowerShell DSC 是一个非常强大的系统,一旦安装它,就可以在服务器管理方面为您提供更多可能性。
使用您自己的虚拟机映像
您可以capture 和upload 一个虚拟机映像并将其用作您的 Service Fabric ARM 模板的基础映像。如果您需要在服务器上执行不容易自动化的步骤,这可能会很有用。