无法在节点中创建目录

时间:2015-01-07 07:52:33

标签: chef

我在这里编写了一个简单的方法,即在节点中创建一个目录。但它在运行chef-client时显示错误。

目录"〜/ build"做

动作:创建

* Parent directory ~ does not exist, cannot create ~/build
================================================================================
Error executing action `create` on resource 'directory[~/build]'
================================================================================

Chef::Exceptions::EnclosingDirectoryDoesNotExist
------------------------------------------------
Parent directory ~ does not exist, cannot create ~/build

感谢您的宝贵意见。

2 个答案:

答案 0 :(得分:2)

如上所述,〜在Ruby中没有上下文,但您可以使用File.expand_path将其更改为正确的目录...

directory File.expand_path("~/build") do
  action :create
end

这看起来比上面的方法更清晰,至少对我而言,但它们仍然是正确的。

http://www.ruby-doc.org/core-2.1.2/File.html#method-c-expand_path

答案 1 :(得分:0)

~$HOME在ruby中没有任何意义,它们在shell上下文中都没问题。

directory "#{ENV['HOME']}/build"会更好。

它将在运行chef的用户的主目录中创建目录。