Ansible playbook中 block用法

block就是一组逻辑的tasks。使用block可以将多个任务合并为一个组。还可以做错误处理,即当任务发生错误后,执行rescue任务。

# block:block里的tasks,如果运行正确,则不会运行rescue;
# rescue:block里的tasks,如果运行失败,才会运行rescue里的tasks
# always:block和rescue里的tasks无论是否运行成功,都会运行always里的tasks

 示例:

- hosts: test
  user: root
  gather_facts: false 

  tasks:
    - name: copy  file 0 to 1
      shell: cp /data/test/0 /data/test/1
    - block:
        - name: copy file1 a to b
          shell: cp /data/test/a /data/test/b
        - name: copy file2 c to e
          shell: cp /data/test/c /data/test/e
      rescue:
        - name: copy file3 b to d
          shell: cp /data/test/b /data/test/d
      always:
        - name: copy file4 f to g
          shell: cp /data/test/f /data/test/g
    - name: copy file5 h to i
      shell: cp /data/test/h /data/test/i

#释#####################
正常执行任务shell cp 0 to 1
添加block任务
  复制file1
  复制file2
  当2个任务中任一发生错误后,执行rescue任务中的复制file3
  如复制file1出错,将跳过复制file2,而直接执行rescue任务
  无论是否成功都会执行always复制file4
(注意格式问题)复制file5也无论上面复制文件file1 file2是否失败都执行。


 

你可能感兴趣的:(ansible,ansible)