运行食谱名称

厨师,这个配方运行时可以得到配方名称吗?

我想在日志/debugging中添加配方名称。 就像是:

厨师:Log.info“#{recipe_name} xxxx”

实际上,您可以按照您在问题中提出的方式获得配方名称!

Chef::Log.info("I am a message from the #{recipe_name} recipe in the #{cookbook_name} cookbook.") 

这个和其他方便的方法logging在Opscode网站上的Recipe DSL页面。

我不知道配方名称,但是您可以使用__FILE__来logging当前执行的Ruby脚本的文件名:

 Chef::Log.info("#{__FILE__}") 

显示为

 [2013-02-13T20:39:10+00:00] INFO: /tmp/vagrant-chef-1/chef-solo-1/cookbooks/gem/recipes/default.rb 

至less对于厨师独奏。

我知道这是一个旧的post,但它仍然是谷歌的最高结果,所以我认为对厨师12更新的答案将是很好的补充。

在厨师12中,我直接在我的食谱中使用这个:

 log("Recipe @ #{__FILE__}") 

输出如下所示:

 * log[Recipe @ /var/chef/cache/cookbooks/crafter-cms-dev/recipes/test.rb] action write