Skip to content

Instantly share code, notes, and snippets.

@devth
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save devth/8958644 to your computer and use it in GitHub Desktop.
Save devth/8958644 to your computer and use it in GitHub Desktop.
;;; Pallet project configuration file
(require '[pallet.crate.java :as java]
'[pallet.crate.runit :as runit]
'[pallet.crate.lein :as lein]
'[pallet.crate.app-deploy :as app-deploy]
'pallet.compute)
(defplan setup-machine []
(package-manager :update)
(packages :apt ["git"]))
(def foo-project-user
(pallet.api/make-user
"ubuntu"
:private-key-path "/Users/qux/.ssh/foo-project-prod.pem"
:public-key-path "/Users/qux/.ssh/foo-project-prod.pub"))
(def webserver-nodes
(pallet.compute/instantiate-provider
"node-list"
:node-list [["webserver" "fullstack" "54.200.200.238" :ubuntu]]))
(def webserver-grp
(group-spec "webserver"
; :user foo-project-user
; :compute webserver-nodes
:extends [(lein/leiningen {})
(java/server-spec {})
(runit/server-spec {})
(app-deploy/server-spec
{:artifacts
{:from-lein
[{:project-path "target/api-%s-standalone.jar"
:path "api.jar"}]}
:run-command "java -jar /opt/api/api.jar"}
:instance-id :api)]
:phases {:configure (pallet.api/plan-fn
(setup-machine)
(pallet.actions/exec-script ("ls")))}))
(defproject webapp
:provider {:aws-ec2
{:node-spec
{:image {:os-family :ubuntu
:os-version-matches "12.04"
:os-64-bit true
:image-id "us-east-1/ami-e2861d8b"}
:network {:incoming-ports [22 3000]}}}}
:groups [webserver-grp])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment