ansible中Chef for Block的等效资源是什么?

时间:2018-12-15 18:00:26

标签: ansible chef chef-recipe

我有一个有趣的剧本正在使用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, :-)'

注意:以上几行是示例代码。它可以是任何代码行。但是我要知道我可以使用哪种厨师资源来替换块语法?

2 个答案:

答案 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编码实践即可。