通常一个引导具有boostrap
的Chef节点,如下所示:
knife bootstrap mynode.example.com -N mynode -x myuser --sudo --run-list "role[myrole]"
我想知道是否有办法从Java执行此操作而无需在操作系统上安装Ruby或Chef。例如,JClouds似乎有一个Chef实现,但我不能告诉它是否首先需要在本地安装Ruby / Chef。想法?
答案 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脚本
我猜测链接主题的完整讨论应提供您需要的详细信息。但是,由于我自己并不了解其中的大部分内容,因此我无法真正扩展细节。