我希望第二个代码仅在第一个代码返回0状态(成功)时执行。
execute 'make dir' do
command 'mkdir foo'
action :run
end
execute 'make dir2' do
command 'mkdir bar'
action :run
end
答案 0 :(得分:0)
首先,您应该使用本机Chef资源来创建目录。应该尽可能避免脱壳,因为它会绕过厨师的幂等性以及其他问题。
其次,如果您的第一个资源失败,那么chef-client将退出,因此后续资源显然无法完成,除非您添加一个属性来忽略该资源的失败。
但是,这可能是你想要的:
directory 'bar' do
action :nothing
end
directory 'foo' do
action :create
notifies :create, 'directory[dir2]', :immediately
ignore_failure true
end