我在这里编写了一个简单的方法,即在节点中创建一个目录。但它在运行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
感谢您的宝贵意见。
答案 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的用户的主目录中创建目录。