没有给出预期结果的秘诀
recipe of not giving expected results
我只想在给定目录“/local/update/”不存在时执行命令
我的食谱代码如下
execute 'test' do
command "some command here"
not_if { ::File.directory?("/local/update/") }
end
也试过
not_if { ::File.exist?("/local/update/") }
即使目录存在,它仍然运行命令。
我已经签到 client.log 并且没有跳过这一步
添加一个答案,因为有更好的(内置的)方法可以使 execute
资源幂等。我们可以使用 creates
属性 而不是使用 not_if
来跳过它。来自 documentation:
creates
Ruby Type: String
Prevent a command from creating a file when that file already exists.
示例:
execute 'test' do
command "some command here"
creates '/local/update/'
end
使用此实现,如果 /local/update/
路径不存在,command
将 运行。否则它将报告为“最新”:
* execute[test] action run (up to date)
我只想在给定目录“/local/update/”不存在时执行命令
我的食谱代码如下
execute 'test' do
command "some command here"
not_if { ::File.directory?("/local/update/") }
end
也试过
not_if { ::File.exist?("/local/update/") }
即使目录存在,它仍然运行命令。 我已经签到 client.log 并且没有跳过这一步
添加一个答案,因为有更好的(内置的)方法可以使 execute
资源幂等。我们可以使用 creates
属性 而不是使用 not_if
来跳过它。来自 documentation:
creates
Ruby Type: String
Prevent a command from creating a file when that file already exists.
示例:
execute 'test' do
command "some command here"
creates '/local/update/'
end
使用此实现,如果 /local/update/
路径不存在,command
将 运行。否则它将报告为“最新”:
* execute[test] action run (up to date)