预计使用lein的托盘

时间:2012-04-01 05:28:38

标签: clojure amazon-ec2 leiningen pallet

我在这里阅读托盘:http://twoguysarguing.wordpress.com/2010/11/01/starting-a-cluster-on-ec2-with-pallet/,以及托盘网站:http://palletops.com/。我还是有点困惑。这些示例的排列方式就好像我希望在REPL中输入代码一样。

但我觉得我错过了一些东西。因为我觉得(或者我希望)应该有某种lein支持/集成,所以我可以定义一些代码来启动集群,启动集群,停止集群,部署war文件等。通过一系列lein命令。

我确实在github上找到了以下项目,但它似乎是用maven而不是lein编写的:https://github.com/cemerick/clojure-web-deploy-conj

而且,这非常接近我想要的,除了我想要以某种方式绑定到lein目标:http://cemerick.com/2010/05/12/provisioning-administration-and-deployment-of-couchdb-java-tomcat/

2 个答案:

答案 0 :(得分:1)

Leiningen wiki指的是pallet/pallet-lein

我对托盘没有任何经验,但看起来Leiningen插件将第一个插件参数传递给pallet.main命名空间中的一个函数,该函数似乎调用托盘。

因此,foo中的参数lein pallet foo将传递给托盘。

答案 1 :(得分:0)

所以我找到了以下http://nakkaya.com/2010/02/25/writing-leiningen-plugins-101/,它描述了创建自己的插件的过程。事实证明它相当简单。创建一个顶级leiningen /目录,给它一个命名空间名称和一个同名的函数。而功能成为莱宁根的一项任务。因此,例如配置一台机器,我所要做的就是:

; In file leiningen/aws_provision.clj
(ns leiningen.aws-provision)

(defn aws-provision [project & args]
    (println "pallet code to provision the box here..."))

然后从lein提示我可以做到:

lein aws-provision

我猜pallet-lein并不能真正做到我想要的,因为云提供商的哪些细节,哪个机器尺寸,哪些打包安装在机器上等等对于每个人都不同