【问题标题】:expected usage of pallet from leinlein 托盘的预期用途
【发布时间】:2023-04-04 01:08:01
【问题描述】:

我在这里阅读有关托盘的信息: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/

【问题讨论】:

    标签: clojure amazon-ec2 leiningen pallet


    【解决方案1】:

    Leiningen wiki 指的是pallet/pallet-lein

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

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

    【讨论】:

    • 这很好,但是 github 页面没有提供任何文档,这个页面 palletops.com/doc/first-steps 显示 lein pallet add-service 然后说转到 REPL 并输入以下代码来启动/停止服务。所以这意味着插件可以添加服务但不支持启动/停止服务。并且没有提到部署战争。我错过了什么吗?
    • 我没有任何使用托盘的经验,但看起来 Leiningen 插件将第一个插件 arg(“lein palette foo”中的 foo)传递给了 palette.main 命名空间中出现的函数调用托盘。
    【解决方案2】:

    于是我找到了以下http://nakkaya.com/2010/02/25/writing-leiningen-plugins-101/,它描述了创建自己的插件的过程。事实证明,这相当简单。创建一个顶级 leiningen/ 目录,给它一个命名空间名称,以及一个同名的函数。并且该功能成为 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 并不能真正做我想做的事,因为每个人的具体细节是哪个云提供商、哪个机器大小、要在机器上安装哪些包等。 .

    【讨论】:

      猜你喜欢
      • 2014-02-27
      • 2012-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-31
      • 1970-01-01
      • 1970-01-01
      • 2021-03-05
      相关资源
      最近更新 更多