在IIS服务器上拉取Asp.net部署包

我想知道如何build立一个IIS服务器,以从互联网上提取更新的,预build的软件包。 减less对服务器进行必要调整的奖励点数。

设置:我工作的公司为各种客户构build定制的Web应用程序。 客户通常希望自己在内部服务器上托pipe这些应用程序。 这些网站通常甚至不能从企业networking外部获得,更不用说服务器的pipe理界面(文件复制,远程桌面等)

其次,我们发现没有持续部署策略的开发会导致错误发布,我们决定不再这样做。 我们需要使用完全脚本化的构build过程(构build,部署,sql server迁移,一切)来频繁发布(每天多次)

目前的方法:所以我们现在有一个Jenkins CI服务器在我们的networking上,可以通过互联网在特定的端口上访问。 我们要求客户端有三台机器/ vms:生产服务器,登台服务器和生成机器。 (和一些sql数据库通常)程序员需要能够login,并在生成机器上具有pipe理员权限。 构build机器需要能够将文件复制到Web服务器并访问数据库。 我们每次都是

  1. 在构build机器上configuration构build和部署过程
  2. 在构build机器上启动一个Jenkins客户机,以便我们可以定期触发构build机器上的构build,并获取有关这些构build的报告

问题:我们现在正在为每个客户端configuration一台生成机器,这需要花费一些时间(重新安装MSBUILD,编辑所有依赖关系等)。 我们还要求每个客户端将受到高度保护的部件networking中的机器连接到服务器上,以便执行任意的shell脚本。 因此,我们只能允许超级select的一组人访问我们的jenkins服务器,这使得这些人成为瓶颈。

我们想要的是:要在我们自己的networking上创build一台构build机器,请让该机器创build包装并在客户机器上安装这些包装。 我们的软件包主机将不能启动到客户端机器的连接(因为客户端的机器不能通过互联网访问),所以IIS服务器需要轮询新的软件包版本。 由于网站的部署不是pipe理员的主要任务,configurationIIS机器不应该需要大量的工作。 它也不应该给包装(即我们)的创造者太多的机器控制。 最好是软件包应该提供文件和IISconfiguration,而不是更多。

我的问题:我不熟悉包装和系统pipe理方面的最新进展。 我可以用什么方法来实现上述过程? 我已经阅读了Web Deploy , WIX , 各种 CI 服务器和章鱼部署 ,但似乎都需要在客户端的networking上进行大量的configuration,或者需要pipe理员对IIS机器的访问。

现在有人在这里如何达到我们的目标?

我不认为你会在客户机上安装某种代理来轮询和保持网站更新。 Octopus Deploy似乎是一个不错的select,你能详细说明为什么你已经打折了吗?

你也可以看看AppHarbor (我是联合创始人)。 这是一个全面服务的.NET平台,但是您可以利用当前免费的CI部分,并使用API 构build通知来通知并获取您自己部署的构build包。