2014-07-14 36 views
1

通常一个白手起家厨师节点与boostrap像这样:有没有办法从纯Java实现引导Chef节点?

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

我想知道是否有一种方法可以从Java做到这一点,而无需Ruby或厨师您的操作系统上安装。例如,JClouds似乎有一个Chef实现,但我不知道它是否首先需要本地安装Ruby/Chef。想法?

+0

我管理ruby/chef环境稳定很麻烦,如果有Java我会喜欢它 –

+1

安装最新的厨师DK(开发工具包)它会提供各种厨师管理,命令全部使用嵌入式副本的红宝石。这将保持你的厨师工作站稳定。 jClouds看起来很有趣,但我会担心转换,因为替代客户端需要努力工作才能跟上标准的基于ruby的工具。 –

+0

'knife bootstrap'只是封装了一些SSH调用。您可以查看源代码并使用您喜欢的任何语言进行复制 – sethvargo

回答

2

正如Everett指出的那样,这正是jclouds-chef所做的。查看指南以了解它的工作原理。

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

0

this discussion有关从厨师邮件列表的主题,在约翰·文森特E.写道,

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

如果需要,您可能可以使用jruby并将主厨宝石拉进一些API 交互。

最后,厨师用红宝石书写。不管什么尴尬的要求 将不得不接受。

但以理Cukier回应:

我做了一些测试,这将是不可能的运行 JVM内部厨师。我唯一的选择是使用jcloud配置机器,然后通过ssh运行引导脚本 。

我想从链接线程的全面讨论应该提供您需要的细节。然而,由于我自己对此不太了解,所以我无法真正展开细节。

相关问题