Bo's Oracle Station

查看: 942|回复: 0

ANSIBLE14(block-rescue-always)

[复制链接]

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2020-8-15 15:52:43 | 显示全部楼层 |阅读模式
  1. ---
  2. - name: ansible (block & resuce & always)
  3.   hosts:  srvgroup
  4.   gather_facts: no
  5.   tasks:
  6.   - name: block & rescue
  7.     block:
  8.     - name: test file is exists
  9.       shell: "ls /tmp/XXX"

  10.     rescue:
  11.     - name: create file
  12.       copy:
  13.         content: "welcome to XXX\n"
  14.         dest: "/tmp/XXX"

  15.     always:
  16.     - name: welcome
  17.       shell: "cat /tmp/XXX"
  18.       register: v_result

  19.     - name: Display
  20.       debug:
  21.         msg: "{{ v_result.stdout }}"
复制代码

对照每一步的输出:

  1. ---
  2. - name: ansible (block & resuce & always)
  3.   hosts:  srvgroup
  4.   gather_facts: no
复制代码



[student@classroom ansible]$ ansible-playbook  v6-8_srvgroup.yml

PLAY [ansible (block & resuce & always)] *********************************************************************************************************************************

  1.   tasks:
  2.   - name: block & rescue
  3.     block:
  4.     - name: test file is exists
  5.       shell: "ls /tmp/XXX"
复制代码



TASK [test file is exists] ***********************************************************************************************************************************************
fatal: [server3.example.com]: FAILED! => {"ansible_facts": {"discovered_interpreter_python": "/usr/libexec/platform-python"}, "changed": true, "cmd": "ls /tmp/XXX", "delta": "0:00:00.009540", "end": "2020-08-15 16:22:07.181198", "msg": "non-zero return code", "rc": 2, "start": "2020-08-15 16:22:07.171658", "stderr": "ls: cannot access '/tmp/XXX': No such file or directory", "stderr_lines": ["ls: cannot access '/tmp/XXX': No such file or directory"], "stdout": "", "stdout_lines": []}
fatal: [server1.example.com]: FAILED! => {"ansible_facts": {"discovered_interpreter_python": "/usr/libexec/platform-python"}, "changed": true, "cmd": "ls /tmp/XXX", "delta": "0:00:00.025590", "end": "2020-08-15 16:22:07.338628", "msg": "non-zero return code", "rc": 2, "start": "2020-08-15 16:22:07.313038", "stderr": "ls: cannot access '/tmp/XXX': No such file or directory", "stderr_lines": ["ls: cannot access '/tmp/XXX': No such file or directory"], "stdout": "", "stdout_lines": []}
fatal: [server2.example.com]: FAILED! => {"ansible_facts": {"discovered_interpreter_python": "/usr/libexec/platform-python"}, "changed": true, "cmd": "ls /tmp/XXX", "delta": "0:00:00.007247", "end": "2020-08-15 16:22:07.136683", "msg": "non-zero return code", "rc": 2, "start": "2020-08-15 16:22:07.129436", "stderr": "ls: cannot access '/tmp/XXX': No such file or directory", "stderr_lines": ["ls: cannot access '/tmp/XXX': No such file or directory"], "stdout": "", "stdout_lines": []}



  1.     rescue:
  2.     - name: create file
  3.       copy:
  4.         content: "welcome to XXX\n"
  5.         dest: "/tmp/XXX"
复制代码
TASK [create file] *******************************************************************************************************************************************************
changed: [server3.example.com]
changed: [server1.example.com]
changed: [server2.example.com]


  1.     always:
  2.     - name: welcome
  3.       shell: "cat /tmp/XXX"
  4.       register: v_result
复制代码


TASK [welcome] ***********************************************************************************************************************************************************
changed: [server2.example.com]
changed: [server3.example.com]
changed: [server1.example.com]




  1.     - name: Display
  2.       debug:
  3.         msg: "{{ v_result.stdout }}"
复制代码




TASK [Display] ***********************************************************************************************************************************************************
ok: [server1.example.com] => {
    "msg": "welcome to XXX"
}
ok: [server2.example.com] => {
    "msg": "welcome to XXX"
}
ok: [server3.example.com] => {
    "msg": "welcome to XXX"
}


另外一个例子:
  1. ---
  2. - name: 处理任务失败的实验
  3.   hosts: server3.example.com
  4.   tasks:
  5.   - name: install services
  6.     block:
  7.     - name: install
  8.       yum:
  9.         name: http
  10.         state: latest

  11.     rescue:
  12.     - name: install mysql
  13.       yum:
  14.         name: mariadb-server
  15.         state: latest

  16.     always:
  17.     - name: restart mariadb
  18.       service:
  19.         name: mariadb
  20.         state: started
复制代码





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-5-9 11:47 , Processed in 0.031504 second(s), 24 queries .

快速回复 返回顶部 返回列表