2012-07-14 81 views
5

我正在使用rake和albacore构建我的.net ASP MVC项目,但是迄今为止我尚未能够自动化的一部分是将构建的项目部署到IIS。目前在开发人员机器上,我让开发人员手动创建网站并将其链接到由构建生成的已发布输出文件夹。使用Rake创建IIS网站

但是现在我们有我们的CI盒设置(TeamCity的),我需要自动化的网站IIS的设置,那么,有没有可以创建一个IIS网站的任何rake任务?我记得曾经看过一段,但找不到它。

我可以安装IIS 6元脚本的东西(记不起它的确切名称)和任何其他IIS插件,盒子目前运行IIS 7.5。

== ==编辑

一个我记得看到前阵子是INETMGR(https://github.com/typesafe/inetmgr),这似乎有点不稳定,我不工作,但似乎没有得到任何进一步的支持。

回答

6

不是最好的答案,但我找不到任何比所提出的方法下面我只写了简单的东西自己用APPCMD:

def create_web_site(site_name, site_location, site_port) 
    delete_command = "#{$file["appcmd"]} delete site #{site_name}" 
    result = system delete_command 
    puts "Failed to delete site on IIS: #{$?}" unless result 

    add_command = "#{$file["appcmd"]} add site /name:#{site_name} /bindings:http/*:#{site_port}: /physicalPath:#{site_location}" 
    result = system add_command 
    raise "Failed to add site on IIS: #{$?}" unless result 

    set_app_pool_command = "#{$file["appcmd"]} set app #{site_name}/ /applicationPool:\"ASP.NET v4.0\"" 
    result = system set_app_pool_command 
    raise "Failed to bind site to .net 4 app pool on IIS: #{$?}" unless result 

    start_site_command = "#{$file["appcmd"]} start site #{site_name}" 
    result = system start_site_command 
    raise "Failed to start site on IIS: #{$?}" unless result 
end 

$file["appcmd"]在上面是一个全球性的文件查找我的构建脚本,这是c:/ windows/system32/inetsrv。

我很想找到一个更好的解决方案,因此,如果任何人遇到这样添加的答案,我会改变正确的答案,如果它是更好的一个更好的方式。我发现的唯一2个图书馆是dolphin deploy和7 digital的iis rake脚本,这两个库似乎都很好地记录了如何使用。

1

我建议你看看Capistrano。 Capistrano是部署ruby/rails/...应用程序的“框架”。查看getting started文档的一部分,然后查看有关如何部署到Windows Server with Capistrano的“教程”。

+0

对不起我不是不够明确,使用它的一个.NET项目ASP MVC,会改变问题,包括这个。 – Grofit 2012-07-14 12:52:01