2012-07-14 6 views
5

Tôi đang sử dụng rake và albacore để xây dựng dự án .net ASP MVC của mình, tuy nhiên một phần tôi không thể tự động hóa cho đến nay là triển khai dự án đã xây dựng lên IIS. Hiện tại trên các máy phát triển, tôi có được các nhà phát triển để tạo thủ công các trang web và liên kết chúng với một thư mục đầu ra được tạo ra bởi bản dựng.Tạo trang web IIS với Rake

Tuy nhiên bây giờ chúng tôi đã thiết lập hộp CI của chúng tôi (Teamcity) Tôi cần phải tự động hóa thiết lập của trang web cho IIS, vì vậy có bất kỳ công việc cào nào có thể tạo một trang web trên IIS không? Tôi nhớ nhìn thấy một trong khi trở lại nhưng không thể tìm thấy nó.

Tôi có thể cài đặt IIS 6 meta scripting stuff (không thể nhớ tên chính xác của nó) và bất kỳ plugin iis nào khác, hộp hiện đang chạy IIS 7.5.

== Sửa ==

Người Tôi nhớ nhìn thấy một khi trở lại là inetmgr (https://github.com/typesafe/inetmgr), mà dường như một chút không ổn định và không làm việc cho tôi nhưng dường như không được hỗ trợ thêm nữa.

Trả lời

6

Không tốt nhất của câu trả lời, nhưng như tôi không thể tìm thấy bất cứ điều gì đơn giản hơn so với phương pháp đề xuất dưới đây tôi chỉ viết một cái gì đó bản thân mình sử dụng 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"] ở trên là một tra cứu tập tin toàn cầu cho tôi xây dựng kịch bản, đây là c:/windows/system32/inetsrv.

Tôi rất muốn tìm một giải pháp đẹp hơn vì vậy nếu có ai đi qua một cách tốt hơn để làm điều này thêm câu trả lời và tôi sẽ thay đổi câu trả lời đúng nếu nó tốt hơn. Chỉ có 2 thư viện để làm điều này tôi tìm thấy là triển khai cá heo và kịch bản rais iis 7 kỹ thuật số, không phải trong số đó cũng có tài liệu về cách sử dụng không may.

1

Tôi khuyên bạn nên xem Capistrano. Capistrano đang triển khai "framework" cho các ứng dụng ruby ​​/ rails/.... Hãy xem getting started một phần tài liệu và sau đó xem "hướng dẫn" này về cách triển khai đến Windows Server with Capistrano.

+0

Xin lỗi tôi không đủ rõ ràng rằng một dự án .net của mình bằng cách sử dụng asp mvc, sẽ thay đổi câu hỏi để bao gồm điều này. – Grofit