尝试使用puppet在rpi上创建自动启动目录。仅当位置不存在时才应该mkdir
。
以下是当前代码:
exec { "mkdir_autostart":
command => "mkdir /home/pi/.config/autostart",
unless => "[ -d /home/pi/.config/autostart ]",
path => "/usr/local/bin/:/bin/",
}
这是我得到的:
err: Failed to apply catalog: Parameter unless failed on Exec[mkdir_autostart]:
'[ -d /home/pi/.config/autostart ]' is not qualified and no path was specified.
Please qualify the command or specify a path.
还尝试使用onlyif语句,但产生了同样的错误。我做错了什么?
编辑:
添加路径(path => "/usr/local/bin/:/bin/",
),现在获取:
err: /Stage[main]/auto::Sign/Exec[mkdir_autostart]: Could not evaluate: Could not find command '['
答案 0 :(得分:5)
您应该使用“文件”类型:
file { "/home/pi/.config/autostart":
ensure => directory
}
但如果出于任何原因,您想保留“exec”类型,请使用test -d /home/pi/.config/autostart
答案 1 :(得分:0)
我建议只添加一个 -p 标志给mkdir,而不是使用 :
exec { "mkdir_autostart":
command => "mkdir -p /home/pi/.config/autostart",
path => "/usr/local/bin/:/bin/"
}
或者更好的是,只需使用@ sebastien.prudhomme上面提到的Puppet的文件资源类型。