通常一个白手起家厨师节点与boostrap
像这样:有没有办法从纯Java实现引导Chef节点?
knife bootstrap mynode.example.com -N mynode -x myuser --sudo --run-list "role[myrole]"
我想知道是否有一种方法可以从Java做到这一点,而无需Ruby或厨师您的操作系统上安装。例如,JClouds似乎有一个Chef实现,但我不知道它是否首先需要本地安装Ruby/Chef。想法?
通常一个白手起家厨师节点与boostrap
像这样:有没有办法从纯Java实现引导Chef节点?
knife bootstrap mynode.example.com -N mynode -x myuser --sudo --run-list "role[myrole]"
我想知道是否有一种方法可以从Java做到这一点,而无需Ruby或厨师您的操作系统上安装。例如,JClouds似乎有一个Chef实现,但我不知道它是否首先需要本地安装Ruby/Chef。想法?
正如Everett指出的那样,这正是jclouds-chef所做的。查看指南以了解它的工作原理。
您不必在本地安装Ruby/Chef或其他任何东西,也不需要在要引导的机器上安装任何东西。唯一的要求是您要引导的计算机已启用SSH访问并可以连接到Internet。 jclouds-chef将连接到它并负责安装Ruby,Chef以及所有需求并引导节点,就像刀一样。
有this discussion有关从厨师邮件列表的主题,在约翰·文森特E.写道,
你是不是要能够真正地重新实现厨师在Java和 运行在客户端上的JRuby是不可能的。
如果需要,您可能可以使用jruby并将主厨宝石拉进一些API 交互。
最后,厨师用红宝石书写。不管什么尴尬的要求 将不得不接受。
但以理Cukier回应:
我做了一些测试,这将是不可能的运行 JVM内部厨师。我唯一的选择是使用jcloud配置机器,然后通过ssh运行引导脚本 。
我想从链接线程的全面讨论应该提供您需要的细节。然而,由于我自己对此不太了解,所以我无法真正展开细节。
这正是jclouds-chef的目的。参见主厨和ComputeService部分的Bootstrap节点http://jclouds.apache.org/guides/chef/
我管理ruby/chef环境稳定很麻烦,如果有Java我会喜欢它 –
安装最新的厨师DK(开发工具包)它会提供各种厨师管理,命令全部使用嵌入式副本的红宝石。这将保持你的厨师工作站稳定。 jClouds看起来很有趣,但我会担心转换,因为替代客户端需要努力工作才能跟上标准的基于ruby的工具。 –
'knife bootstrap'只是封装了一些SSH调用。您可以查看源代码并使用您喜欢的任何语言进行复制 – sethvargo