我可以自定义azure service fabric vm节点吗?

时间:2016-06-25 22:51:13

标签: customization actor azure-service-fabric

我想在天蓝色服务结构中利用可靠的actor模型。我们的actor模型计算需要在vm节点上安装特定的软件。我是否可以在vm节点中安装自定义软件(在azure服务结构软件之上),以便我可以在actor模型计算中利用此软件?作为我的演员模型部署到azure服务结构的一部分,我可以将这个自定义软件安装到其中吗?这是怎么做的?或者还有其他方法吗?或者甚至可能吗?

Raghu /..

2 个答案:

答案 0 :(得分:9)

您有多种选择:

在每台服务器上手动安装软件

如果您经常不更改服务器数量,如果您没有很多服务器,则只需将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脚本。在这样的脚本中你可以例如使用ChocolateyBoxstarter或手动安装您的程序。

此方法的优点在于,它将软件作为基础架构部署的一部分进行安装,并且当您扩展群集时,它还会自动在每个新节点上安装软件。

使用PowerShell DSC,Puppet,Chef等自动化工具

如果您要安装的程序不能直接作为虚拟机扩展程序使用,并且无法使用"自定义脚本扩展程序"进行安装,则可以使用Azure Automation DSC(所需状态配置)自动在节点上安装其他软件。 DSC需要虚拟机上的代理,该代理可用作虚拟机扩展。有一个ARM-based template,显示如何将扩展集成到虚拟机规模集中。您可以在Service Fabric ARM模板中包含此扩展,并重新部署它以在每个节点上安装扩展。

在此之后,您可以使用DSC的Package功能来安装您的软件。

请注意,创建此解决方案可能需要相当长的时间。但是,PowerShell DSC是一个非常强大的系统,一旦安装,在服务器管理方面为您提供了更多的可能性。

使用您自己的虚拟机镜像

您可以captureupload虚拟机映像,并将其用作Service Fabric ARM模板的基本映像。如果您需要在服务器上执行无法轻松实现自动化的步骤,这可能非常有用。

答案 1 :(得分:0)

您是否尝试将自定义软件部署为来宾可执行文件?

供参考:https://azure.microsoft.com/en-us/documentation/articles/service-fabric-deploy-existing-app/