我有一个有趣的剧本正在使用Block模块,并且我想在Chef中重写它。但无法在Chef中找到等效资源。
示例源代码:
tasks:
- name: Handle the error
block:
- debug:
msg: 'I execute normally'
- name: i force a failure
command: /bin/false
- debug:
msg: 'I never execute, due to the above task failing, :-('
rescue:
- debug:
msg: 'I caught an error, can do stuff here to fix it, :-)'
注意:以上几行是示例代码。它可以是任何代码行。但是我要知道我可以使用哪种厨师资源来替换块语法?
答案 0 :(得分:1)
Blocks
允许对任务进行逻辑分组以及进行中的错误处理。通常用于将单个条件应用于多个任务,这可以通过Chef等中的If
条件来实现。
if node[:platform_family].include?("rhel")
package 'httpd'
service 'httpd' do
action [:enable, :start]
end
end
答案 1 :(得分:0)
至少在case '\n': sReturn.append ("\n"); break;
功能上没有直接等效项。对于分组,您只需要使用常规的Ruby编码实践即可。