2013-06-10 22 views
7

jak tytuł,
Moje IDE jest IntelliJ IDEA 12.1.4,
Co narzędzi lub wtyczki muszę móc zainstalować aplikację internetową clojure na Amazon EC2?Jak wdrożyć aplikację internetową Clojure Amazon EC2 (Elastic Beanstalk AWS + Leiningen + Compojure + pierścień + Tomcat)

Czy istnieje jakiś link lub odniesienie lub rozwiązanie krok po kroku? dziękuję

+2

Możesz zajrzeć do [** Pallet **] (http://palletops.com/doc/first-steps/), obsługuje on AWS EC2. * "Paleta to platforma do sprawnej i programowej automatyzacji infrastruktury w chmurze, na stojakach serwerowych lub bezpośrednio na maszynach wirtualnych." * –

+0

Musisz również przejrzeć https://github.com/weavejester/lein-beanstalk. To świetna biblioteka, która oferuje proces wdrażania jednym kliknięciem, jeśli używasz AWS Elastic Beanstalk. – hsestupin

Odpowiedz

13

Jeśli po prostu wdrażasz plik wojenny bez żadnej niestandardowej infrastruktury, to używanie EC2 bezpośrednio jest przesadą, a elastyczna fasola sprawi, że będziesz potrzebował o wiele łatwiej. Jeśli rośniesz coś większego i chcesz wdrożyć jednym kliknięciem, to paleta jest wspaniałym narzędziem.

Jest wiele do palet i jest to świetna biblioteka do pisania niezwykle małych programów do robienia tego typu rzeczy (i wiele, wiele więcej). Poświęć trochę czasu na zrozumienie koncepcji palet grupy "węzłów", "zbiegnij się" itd. I daj sobie dużo cierpliwości. Po przejściu z paletą czuje się jak magia.

Miejsce rozpoczęcia pracy zawiera poradnik dla początkujących palet. przejrzyj przykład Witaj, który sprawi, że Twoje konto aws zostanie skonfigurowane, a klucze będą tam, gdzie powinny. Następnie możesz dodać trochę kodu clojure, który tworzy instancję z najnowszą wersją twojej aplikacji internetowej.

Potrzebne będą:

  • paleta 0.8 i nowsze
  • paleta java paka
  • grupę specyfikację, która instaluje Java i kopii plików wojna skończona.
  • Wtyczka lein plugin jest niezła, ale nie jest wymagana.
  • dużo cierpliwości, aby wszystko działało.

A rough zarys specyfikacji grupowej to będzie wyglądać trochę jak

(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])) 

byś wtedy zadzwonić converge z internetowej grupy albo utworzyć lub zaktualizować swoje serwery.

i proszę wskoczyć na #pallet na freenode, gdzie przyjaźni ludzie (moje jaźni zawarte między ~ 10: 00 a ~ 18: 00 USA-zachód) są chętni do pomocy.