2016-02-29 82 views
0

比方说,我有3个execute资源“创建用户”“安装客户端”“验证客户端”厨师 - 多种资源的防止执行

如果满足一个条件,我该如何防止执行所有这些资源?

喜欢的东西:

block 'Manage client' do 
    execute 'Create users' do 
     cwd  scripts_path 
     command './installClient.sh -create_users' 
    end 
    execute 'Install client' do 
     cwd  scripts_path 
     command '/installClient.sh -installClient' 
    end 
    execute 'Verify client' do 
     cwd  scripts_path 
     command './installClient.sh -verifyClient' 
    end 
    not_if { ::File.exists?('/tmp/client_configured_success') } 
end 

回答

1

使用正常if/unless条件像其他任何Ruby代码。

unless File.exist?('/tmp/client_configured_success') 
    execute 'Create users' do 
     cwd  scripts_path 
     command './installClient.sh -create_users' 
    end 
    execute 'Install client' do 
     cwd  scripts_path 
     command '/installClient.sh -installClient' 
    end 
    execute 'Verify client' do 
     cwd  scripts_path 
     command './installClient.sh -verifyClient' 
    end 
end 
+0

是的,foodcritic会抱怨这一点。 FoodCritic是错误的。 – coderanger