我正在为一个流浪盒的厨师食谱挣扎。我正在使用厨师独奏。
我对Ruby不太满意(我之前从未使用过它),所以如果我每次都要做vagrant provision
,那么编写我的食谱的过程会很长。
有没有办法调试特定食谱?甚至来自虚拟机shell。
我已经看到chef-shell
存在(http://docs.opscode.com/chef_shell.html),当我进入虚拟机时我可以启动它(它可以工作),但我无法理解如何加载我的食谱和测试它们。
答案 0 :(得分:30)
在当前的vagrant chef配置器中启用调试输出的正确方法是使用chef.log_level,而不是手动使用chef-solo或使用chef.arguments:
Vagrant.configure("2") do |config|
# ...
config.vm.provision :chef_solo do |chef|
chef.log_level = :debug
# ...
end
end
答案 1 :(得分:8)
除了上面的输入,这是非常好的; - )
在调试模式下运行chef-solo
(启用调试输出)肯定有帮助。
例如
chef-solo -c solo.rb -j node.json -l debug
答案 2 :(得分:5)
如果您在Vagrant中运行chef-solo,可以从Vagrantfile中注入其他自定义参数(用于记录/调试),如下所示:
Vagrant.configure("2") do |config|
# ...
config.vm.provision :chef_solo do |chef|
chef.arguments = '-l debug'
# ...
end
end
答案 3 :(得分:4)
您可以直接从VM中的shell使用chef-solo,但这需要的文件结构与流浪者的文件结构不同。
它看起来有点像here:
chef.json
的所有数据一般情况下,尝试搜索解释没有Vagrant的chef-solo的教程。