2013-06-10 18 views
7

AS tiêu đề,
IDE của tôi là IntelliJ IDEA 12.1.4,
toolkit gì hoặc plugin nào tôi cần phải có thể triển khai ứng dụng web clojure cho Amazon EC2 không?Làm thế nào để triển khai một ứng dụng web clojure đến Amazon EC2 (Elastic AWS Beanstalk + Leiningen + Compojure + Nhẫn + Tomcat)

Có bất kỳ liên kết hoặc tham chiếu hoặc giải pháp từng bước nào không? Cảm ơn bạn

+2

Bạn có thể muốn xem [** Pallet **] (http://palletops.com/doc/first-steps/), nó hỗ trợ AWS EC2. * "Pallet là nền tảng cho tự động hóa nhanh và có lập trình của cơ sở hạ tầng trong đám mây, trên giá máy chủ hoặc trực tiếp trên máy ảo." * –

+0

Ngoài ra, bạn phải xem https://github.com/weavejester/lein-beanstalk. Đó là thư viện tuyệt vời cung cấp cho bạn quá trình triển khai một cú nhấp chuột nếu bạn đang sử dụng AWS Elastic Beanstalk. – hsestupin

Trả lời

13

Nếu bạn chỉ triển khai tệp chiến tranh không có cơ sở hạ tầng tùy chỉnh khác thì sử dụng EC2 trực tiếp là quá mức và cây đậu mềm sẽ làm những gì bạn cần dễ dàng hơn. Nếu bạn đang phát triển một cái gì đó lớn hơn, và muốn triển khai một cú nhấp chuột thì pallet là một công cụ tuyệt vời.

Có rất nhiều thứ để Pallet và nó là một thư viện tuyệt vời để viết các chương trình nhỏ đáng kinh ngạc để thực hiện loại điều này (và nhiều hơn thế nữa). Hãy dành thời gian để hiểu các khái niệm pallet của 'nút' 'nhóm' 'hội tụ' vv, và cho bản thân bạn rất nhiều kiên nhẫn. Một khi bạn nhận được đi với pallet nó cảm thấy giống như ma thuật.

Nơi bắt đầu là với hướng dẫn bắt đầu pallet. đi qua ví dụ thế giới hello sẽ đảm bảo tài khoản aws của bạn được thiết lập và các phím là nơi họ cần. Sau đó, bạn có thể wite một chút mã clojure tạo ra một thể hiện với phiên bản mới nhất của webapp của bạn trên đó.

Bạn sẽ cần:

  • pallet 0.8+
  • pallet java thùng
  • một nhóm spec mà cài đặt java và các bản sao tập tin chiến tranh kết thúc.
  • plugin lein pallet đẹp mặc dù không yêu cầu
  • rất nhiều kiên nhẫn để thiết lập và hoạt động.

Đại cương về một spec nhóm này sẽ trông giống như

(def java-server 
    (java/server-spec 
    {:vendor :oracle 
    :components #{:jdk} 
    :version [7]})) 

(def webserver 
(node-spec 
    :image {:os-family :ubuntu} 
    :hardware {:min-cores 1 :min-ram (* 2 1024)} 
    :phases {:configure 
      (plan-fn 
       (package-manager :update) 
       (package "tomcat7") 
      (remote-file "/var/lib/tomcat7/webapps/myapp.war" 
       :local-file "target/myApp.war" 
       :owner "tomcat7" 
       :group "tomcat7" 
       :mode 755)) 

(def web-group 
(group-spec 
    "my-websertvers" 
    webserver 
    :extends [java-server])) 

sau đó bạn sẽ gọi converge với web-nhóm hoặc là tạo hoặc cập nhật các máy chủ của bạn.

và vui lòng nhảy lên #pallet trên freenode, nơi những người thân thiện (tự bao gồm của tôi trong khoảng 10: 00 và ~ 18: 00 theo hướng tây Mỹ) sẵn sàng trợ giúp.

Các vấn đề liên quan