Write by lyc at 2019-11-5 参考博文:ansible笔记(28):条件判断与block
1.block + when
block将多个任务整合成一个块,这个块被当作一个整体
对这个block块添加when条件判断,当条件成立时,则执行这个block块中的所有任务。
1 2 3 4 5 6 7 8 9 10 11 12 --- - name: name1 debug: msg: "task1 not in block" - name: name2 block: - debug: msg: "task2 in block" - debug: msg: "task3 in block" when: 2 <1
2.block + rescue + always
block错误处理,相当于python的try,捕获错误,不会让程序终止。
block块下有task失败,则执行rescue下的块。无论block是否有失败,always下的块都会被执行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 - block: - name: task1 debug: msg: "我是task1,我是succeed" - name: task2 shell: > ls /nothing - name: task3 debug: msg: "我是task3,task2失败了,我不会被执行,程序直接转到rescue" rescue: - name: task4 debug: msg: "我是task4,block的task失败,会执行rescue下的所有task;如果block成功,rescue不执行。" - name: task5 debug: msg: "我是task5" always: - name: task6 debug: msg: "我是task6,无论block成功与否,always的所有task都会被执行。" - name: task7 debug: msg: "我是task7"