Chef infra Can';t在节点中创建目录

Chef infra Can';t在节点中创建目录,chef-infra,Chef Infra,我在这里写了一个简单的方法,就是在节点中创建一个目录。但运行chef客户端时显示错误 目录“~/build”do 行动:创建 结束 感谢您的宝贵意见。~或$HOME在ruby中没有任何意义,它们在shell上下文中没有问题 目录“#{ENV['HOME']}/build”会更好 它将在运行chef的用户的home dir中创建目录。如上所述,~在Ruby中没有上下文,但您可以使用File.expand\u path将其更改为正确的目录 directory File.expand_path("~/

我在这里写了一个简单的方法,就是在节点中创建一个目录。但运行chef客户端时显示错误

目录“~/build”do

行动:创建

结束


感谢您的宝贵意见。

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

目录“#{ENV['HOME']}/build”
会更好


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

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

directory File.expand_path("~/build") do
  action :create
end
至少对我来说,这看起来比上面的方法更清晰,但它们仍然是正确的


这是因为~符号。我想你需要用。。但通常可以使用以下命令生成目录:mkdir~/build为什么不在chef中?因为
~
是$HOME的shell快捷方式。Ruby对
~
没有特殊意义,因此将其替换为
$HOME
,它将在运行chef的用户的主页中创建目录(通常为root)。它再次显示相同的错误*父目录$HOME不存在,无法创建$HOME/buildbash“创建目录”do代码
directory File.expand_path("~/build") do
  action :create
end