代码之家  ›  专栏  ›  技术社区  ›  jamesaharvey

从Hudson Build/CI服务器部署ASP.NET Web应用程序

  •  7
  • jamesaharvey  · 技术社区  · 15 年前

    我们有多个Hudson持续集成环境,使用自动构建和测试进行设置,但是我们不执行任何类型的自动部署来测试环境。

    我想知道其他团队是如何部署他们的ASP.NET Web应用程序的。我们的构建用一些脚本打包构建的工件,以停止/启动IIS,然后我们必须进入每个服务器并运行安装程序来安装Web应用程序。

    这正在成为我们流程中的一个瓶颈,我正在寻找简化和/或自动化流程的建议,而不必登录到每台服务器来安装最新的构建。

    4 回复  |  直到 15 年前
        1
  •  4
  •   Ryan Duffield    15 年前

    如果您使用的是基于Unix/Linux的环境,则可能需要签出 Fabric Capistrano . 它们允许自动部署Web应用程序。

    编辑:

    如果您在Windows上,您可能需要签出 Web Deployment Tool for IIS . 这似乎仍处于“技术预览”阶段,但可能对你有用——我自己没有这方面的个人经验。

        2
  •  1
  •   Jeffrey Fredrick    15 年前

    您是希望部署到单个环境,还是希望自动部署到所有环境?

    如果您在一个环境中执行此操作,通常很容易从CI服务器自动编写脚本,无论是在每次构建后自动执行,还是在夜间执行,甚至是按需执行。

    但理想情况下,您希望在从测试到生产的所有环境中使用相同的部署自动化。在这种情况下,与您的操作人员交谈并了解他们如何进行部署以及开发一些通用脚本可能是有意义的。当我们(urbancode/anthilpro)谈论 deployment automation 这通常是我们所说的,也是我们向客户推荐的。

    如果你需要说服某人做这项投资是值得的,你可以找到这份白皮书。 Build & Deployment Automation for the Lean Economy (PDF;需要注册)有用。在它中,我们使用精益技术 Value Stream Mapping 为了说明为什么自动化部署对团队来说是一个巨大的胜利。当你意识到在你所描述的那种人工部署中有多少“浪费”时,在自动化方面的投资是一件很容易的事情。

    JTF

        3
  •  0
  •   Vladimir    15 年前

    我从来没用过,但看起来像 Cargo 可能是一个解决方案。

        4
  •  0
  •   Jonathan    11 年前

    伊塞特的方式是太使用哈德逊/詹金斯太做了。我使用了一个简单的deploy.bat,它由jenkins build下的batch命令调用。

    脚本看起来像这样:

    C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\msbuild.exe /p:DeployOnBuild=true /p:DeployTarget=MSDeployPublish /p:MSDeployPublishMethod=WMSVC /p:MSDeployServiceUrl=https://server:8172/msdeploy.axd /p:AllowUntrustedCertificate=true /p:DeployIisAppPath="Default Web Site" /p:Username=serverinstance\user /p:Password=somepassword /p:VisualStudioVersion=11.0
    

    然后你设置IIS也允许远程连接。你也很好去吧!