2012-07-14 92 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