|
- ---
- - name: ansible (block & resuce & always)
- hosts: srvgroup
- gather_facts: no
- tasks:
- - name: block & rescue
- block:
- - name: test file is exists
- shell: "ls /tmp/XXX"
- rescue:
- - name: create file
- copy:
- content: "welcome to XXX\n"
- dest: "/tmp/XXX"
- always:
- - name: welcome
- shell: "cat /tmp/XXX"
- register: v_result
- - name: Display
- debug:
- msg: "{{ v_result.stdout }}"
复制代码
对照每一步的输出:
- ---
- - name: ansible (block & resuce & always)
- hosts: srvgroup
- gather_facts: no
复制代码
[student@classroom ansible]$ ansible-playbook v6-8_srvgroup.yml
PLAY [ansible (block & resuce & always)] *********************************************************************************************************************************
- tasks:
- - name: block & rescue
- block:
- - name: test file is exists
- 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": []}
- rescue:
- - name: create file
- copy:
- content: "welcome to XXX\n"
- dest: "/tmp/XXX"
复制代码 TASK [create file] *******************************************************************************************************************************************************
changed: [server3.example.com]
changed: [server1.example.com]
changed: [server2.example.com]
- always:
- - name: welcome
- shell: "cat /tmp/XXX"
- register: v_result
复制代码
TASK [welcome] ***********************************************************************************************************************************************************
changed: [server2.example.com]
changed: [server3.example.com]
changed: [server1.example.com]
- - name: Display
- debug:
- 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"
}
另外一个例子:
- ---
- - name: 处理任务失败的实验
- hosts: server3.example.com
- tasks:
- - name: install services
- block:
- - name: install
- yum:
- name: http
- state: latest
- rescue:
- - name: install mysql
- yum:
- name: mariadb-server
- state: latest
- always:
- - name: restart mariadb
- service:
- name: mariadb
- state: started
复制代码
|
|