我是ruby和Chef的新手。我一直在开发烹饪书,提交它们,将它们上传到Chef服务器,然后将它们部署到一个更改角色的Chef客户端,然后在客户端上运行“chef-client”。这个过程很慢。
我如何使用IDE(在我的情况下为Eclipse)开发烹饪书并能够调试(设置断点,观察变量等)并运行它们而无需将它们上传到Chef服务器,然后将它们拉回来厨师 - 客户经营?
答案 0 :(得分:4)
答案 1 :(得分:1)
可能已经知道但是目前我们可以使用ATOM和其他软件包语言 - 厨师,linter-foodcritic,linter-ruby
答案 2 :(得分:1)
答案并非如此简单,截至目前,Opscode还没有#34;官方插件"。
我在过去的几个晚上为eclipse创建了一个厨师插件。它现在非常简陋,如果其他人表现出对它的兴趣,我可能会添加更多...现在它完成了我需要的大部分工作(创建新的食谱,添加食谱,属性,lwrps,等等,主要是我在厨师工具(厨师,berks,厨房,食品杂志等)周围放置一个日食包装纸
https://github.com/rleibman/chef-eclipse-plugin
我无意删除此插件,除非opscode出现了自己的插件。
我开始在本教程的帮助下创建此插件:https://cvalcarcel.wordpress.com/2009/07/08/writing-an-eclipse-plug-in-part-1-what-im-going-to-do/。
现在,说完所有这些......如果您对命令行感到满意,您可以使用已有的东西完成您需要的大部分工作:创建一个有berks或厨师的食谱,例如:
主厨生成食谱my_cookbook
然后在eclipse中创建一个新的ruby项目,打开你刚刚创建的食谱。一旦创建,您就可以编辑ruby文件等。您还可以使用所有其他厨师功能(例如厨师生成食谱)来帮助您入门。
答案 3 :(得分:0)
我倾向于在目标虚拟机上使用chef-solo
。我将查看我的cookbook repo并使用模板化的solo.rb进行本地迭代:
path File.expand_path(File.dirname(__FILE__))
cookbook_path "#{File.expand_path(File.dirname(__FILE__))}/cookbooks"
log_level ENV['CHEF_LOG_LEVEL'] && ENV['CHEF_LOG_LEVEL'].downcase.to_sym || :info
log_location ENV['CHEF_LOG_LOCATION'] || STDOUT
verbose_logging ENV['CHEF_VERBOSE_LOGGING']
将log_level
设置为调试有助于与跑步者一起骑行。
答案 4 :(得分:0)
有些人在开普勒工作并发现:
简而言之,请添加:
<buildSpec>
<buildCommand>
<name>org.eclipse.dltk.core.scriptbuilder</name>
<arguments></arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.dltk.ruby.core.nature</nature>
</natures>
我怀疑是否有任何调试等 - 不是我的目标,因为我在Linux上运行,但至少我们有一个不错的编辑器和git集成!
为安全起见,还将.buildpath文件复制到项目位置......不确定是否必要。通用内容是:
<?xml version="1.0" encoding="UTF-8"?>
<buildpath>
<buildpathentry kind="src" path=""/>
<buildpathentry kind="con" path="org.eclipse.dltk.launching.INTERPRETER_CONTAINER"/>
</buildpath>
答案 5 :(得分:0)
对于Eclipse Ruby开发工具,截至2015年5月13日,不支持厨师烹饪书,但如果您愿意,可以使用专有替代品。
RubyMine 7 IDE supports Chef,包含标准Chef资源及其属性的自动完成和定义导航。 Ruby Mine基于Intellij IDEA。
之上安装ruby plugin,则此功能可与Intellij IDEA配合使用,而不是RubyMineIf you are student or teachers,或for education or training或for open source projects,您可以申请免费许可。