有没有办法从纯Java实现引导Chef节点?

时间:2014-07-14 20:06:27

标签: java chef bootstrapping knife jclouds

通常一个引导具有boostrap的Chef节点,如下所示:

knife bootstrap mynode.example.com -N mynode -x myuser --sudo --run-list "role[myrole]"

我想知道是否有办法从Java执行此操作而无需在操作系统上安装Ruby或Chef。例如,JClouds似乎有一个Chef实现,但我不能告诉它是否首先需要在本地安装Ruby / Chef。想法?

3 个答案:

答案 0 :(得分:2)

正如埃弗雷特所指出的,这正是jclouds-chef所做的。查看指南,看看它是如何工作的。

您不必在本地或您要引导的计算机上安装Ruby / Chef或任何东西。唯一的要求是您要引导的计算机已启用SSH访问并可以连接到Internet。 jclouds-chef将连接到它并负责安装Ruby,Chef和所有要求并引导节点,就像刀一样。

答案 1 :(得分:1)

这正是jclouds-chef的用途。请参阅使用Chef的Bootstrap节点和http://jclouds.apache.org/guides/chef/

的ComputeService部分

答案 2 :(得分:0)

有关主题邮件列表中主题的this discussion,其中John E. Vincent写道

  

你无法在Java和Java中真正重新实现厨师   在JRuby上运行客户端是不可能的。

     

您可以使用jruby并将厨师宝石用于某些API   如果需要,可以进行互动。

     

最后,Chef用ruby编写。无论尴尬的要求是什么   必须接受这一点。

Daniel Cukier回应:

  

我做了一些测试,并且不可能在厨房内经营厨师   JVM。我唯一的选择是使用jcloud配置机器,然后运行   通过ssh。

的bootstrap脚本

我猜测链接主题的完整讨论应提供您需要的详细信息。但是,由于我自己并不了解其中的大部分内容,因此我无法真正扩展细节。