几天前,微软发布了他们用来对Azure进行git部署的引擎.我在TODO列表上有一段时间在DEV IIS服务器上设置了这种功能,所以我有兴趣尝试Kudu.
" 入门 "文档显示了如何运行Web前端,但其中的所有内容都使用" http:// localhost:PORTNUMBER "类型的URL用于git存储库,站点URL等.
我意识到这可能远远超过它们,但我想知道是否有人指出如何在"常规"IIS而不是所有localhost位上使用真实域设置它?
goo*_*ack 17
这是一个老问题,所以我给出了更新的答案以及更多当前信息,因为我刚刚在内部部署服务器上设置了Kudu.当前选择的答案仅适用于您是否在开发环境中直接运行Kudu.
如果要部署到"生产"类型环境并且不想在目标服务器上安装Visual Studio,那么github上的项目网站上有一个很好的指南.
https://github.com/projectkudu/kudu/wiki/Deploying-to-a-server
在目标服务器上,您需要安装:
回到开发机器上,按照上面链接中的说明克隆git repo并使用"build.cmd"文件进行构建.
在运行build.cmd时,我遇到了几个测试失败,阻止了构建产生工件.这些都与Mercurial有关,我们不使用.安装Mercurial客户端并没有让它们神奇地消失,所以我禁用了测试而不是花费大量时间来调试我的环境.
您的构建输出将指示失败.我通过注释掉[Fact]属性来禁用.这些是我禁用的测试:
一旦您成功构建了已创建工件中的所有项目,您就可以转移到部署Kudu网站和Web服务代码.以下说明用于设置不同的Web应用程序实例,而不是将所有内容转储到c:\ inetpub\wwwroot中,这是指令的读取方式.
将"artifacts\Release\KuduWeb"复制到运行网站的服务器上的目标区域.我使用单独的主机头运行我的kudu安装,但您可以轻松地使用单独的端口或作为根网站运行.此目录将是Web应用程序的根目录.
在KuduWeb文件夹下立即创建一个空的"App_Data"文件夹.
将"artifacts\Release\SiteExtensions\Kudu"复制到与步骤1中的文件夹相同的级别,并重命名为"Kudu.Services.Web".此位置设置为KuduWeb web.config文件中的相对路径 - 设置serviceSitePath.
打开IIS Admin并创建一个指向步骤1中"KuduWeb"文件夹的网站.
从步骤4配置应用程序池以作为"LocalSystem"运行.这是管理IIS站点所必需的.
在与KuduWeb相同的级别创建一个新的文件夹"apps".这是部署将被发送的地方.注意:此位置在KuduWeb web.config文件中控制 - 设置"sitesPath"
更改文件系统权限以授予"用户"对上述步骤中创建的"apps"文件夹的完全访问权限.
在启动我的Kudu网站时,我收到以下错误.
分析器错误消息:无法加载文件或程序集'System.Web.Mvc,Version = 5.1.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.该系统找不到指定的文件.
由于某种原因,它没有将适当的MVC版本复制到部署工件中.
如果您遇到此错误,可以通过NuGet获取MVC 5文件.我发现我的源代码是针对5.1.0构建的,所以这是合适的链接:
https://www.nuget.org/packages/Microsoft.AspNet.Mvc/5.1.0
为了提取dll,我设置了一个新的虚拟项目,并使用NuGet通过包管理器控制台下拉dll.
安装包Microsoft.AspNet.Mvc -Version 5.1.0
获得二进制文件后,将其从包目录(.\ packages\Microsoft.AspNet.Mvc.5.1.0\lib \net45\System.Web.Mvc.dll)复制到目标计算机上的网站bin目录.
此时你已经开始运行了.使用Web界面创建应用程序.它将在"apps"目录下创建一个子文件夹,其中的树应该是自解释的.它还将为您的应用程序创建两个新网站:
在生产环境中,您应该创建一个在适当的端口/主机头上运行的附加网站,该网站指向:.\ apps \\ site\wwwroot
现在,您可以为部署添加git远程.转到git控制台中的源位置(例如:Git Bash)并添加Kudu标识的遥控器.注意:您可能需要将URL中的localhost更改为相应的服务器名称.
git remote add deploy http://:52711/your-app-name.git
将您的代码推送到新的"部署"远程,看看会发生什么.您应该看到所有正常的推送消息,以及构建输出.
git push deploy master
由于"节点"无法识别,我的初始推送无法构建和部署.它位于路径中,因此服务器重置确信要刷新的路径环境变量.您可能会发现其他错误.例如,我遇到了导入MSBuild并导致打嗝的问题.
错误MSB4019:找不到导入的项目"C:\ Program Files(x86)\ MSBuild\Microsoft\Visual Studio\v11.0\WebApplications\Microsoft.WebApplication.targets".
YMMV,但现在这些都是可以解决的问题.良好的持续部署!
对于您使用Web前端添加的每个应用程序,项目会自动在IIS上设置两个网站.Kudu不会自动为它们映射绑定,但是打开IIS并找到名为"kudu_appname"和"kudu_appname_service"的两个站点相对容易.服务网站也是您指向GIT的网站,另一个是网站本身.只需右键单击并"编辑绑定"即可向它们添加公共绑定.然后,您可以向它们添加公共主机名.
这是简单的部分.我仍在努力的部分是让身份验证工作,所以任何随机的Joe都无法推送到我的kudu存储库!
归档时间: |
|
查看次数: |
3843 次 |
最近记录: |