# Understanding block and rescue

**URL:** <https://forum.ansible.com/t/understanding-block-and-rescue/37004>\
**Category:** Ansible Project\
**Created:** [August 18, 2022, 3:51pm UTC](https://forum.ansible.com/t/understanding-block-and-rescue/37004 "2022-08-18T15:51:12Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Emanuel\_Gonzalez](https://avatars.discourse-cdn.com/v4/letter/e/b3f665/32.png) [@Emanuel\_Gonzalez](https://forum.ansible.com/u/Emanuel_Gonzalez)\
**Post date:** [August 18, 2022, 3:51pm UTC](https://forum.ansible.com/t/understanding-block-and-rescue/37004/1 "2022-08-18T15:51:12Z")

</div>

Hi, sorry for my english, i still learning.  
I need to understand, how its works the blocks and rescue mode in ansible.

I create a playbook similar like this:

- name: “status systemd-resolved”  
shell:  
cmd: |  
systemctl status systemd-resolved  
register: resolved\_status

- block:

- name: “Task 1”

- name: “Task 2”  
rescue:

- name “Execute this if task 1 fails”

The first task fails because systemd-resolved is not installed:

fatal: [ema-test]: FAILED! =\> {“changed”: true, “cmd”: “systemctl status systemd-resolved\n”, “delta”: “0:00:00.039851”, “end”: “2022-08-18 15:34:04  
.922583”, “msg”: “non-zero return code”, “rc”: 3, “start”: “2022-08-18 15:34:04.882732”, “stderr”: “”, “stderr\_lines”: , “stdout”: “● systemd-reso  
lved.service - Network Name Resolution\n Loaded: loaded (/lib/systemd/system/systemd-resolved.service; disabled; vendor preset: enabled)\n Drop-I  
n: /lib/systemd/system/systemd-resolved.service.d\n └─resolvconf.conf\n Active: inactive (dead)\n Docs: man:systemd-resolved.service  
(8)\n [http://www.freedesktop.org/wiki/Software/systemd/resolved\n](http://www.freedesktop.org/wiki/Software/systemd/resolved%5Cn) [http://www.freedesktop.org/wiki/Software/systemd/writing-netwo](http://www.freedesktop.org/wiki/Software/systemd/writing-netwo)  
rk-configuration-managers\n [http://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients](http://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients)”, “stdout\_lines”: [“● systemd-resolv  
ed.service - Network Name Resolution”, " Loaded: loaded (/lib/systemd/system/systemd-resolved.service; disabled; vendor preset: enabled)“, " Drop  
-In: /lib/systemd/system/systemd-resolved.service.d”, " └─resolvconf.conf", " Active: inactive (dead)“, " Docs: man:systemd-resolved  
.service(8)”, " [http://www.freedesktop.org/wiki/Software/systemd/resolved](http://www.freedesktop.org/wiki/Software/systemd/resolved)", " [http://www.freedesktop.org/wiki/Software/systemd/w](http://www.freedesktop.org/wiki/Software/systemd/w)  
riting-network-configuration-managers", " [http://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients](http://www.freedesktop.org/wiki/Software/systemd/writing-resolver-clients)"]}

but the rescue never run.

what is my mistake?

my idea is verify if systemd-resolved is installed, if not, i run others tasks.

Regards,

---

<div class="post-metadata">

**Author:** ![Walter\_Rowe](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/walter_rowe/32/4506_2.png) [@Walter\_Rowe](https://forum.ansible.com/u/Walter_Rowe)\
**Post date:** [August 18, 2022, 3:56pm UTC](https://forum.ansible.com/t/understanding-block-and-rescue/37004/2 "2022-08-18T15:56:22Z")

</div>

Hard to say without seeing the actual code. This page discusses blocks and rescue.

[https://docs.ansible.com/ansible/latest/user\_guide/playbooks\_blocks.html](https://docs.ansible.com/ansible/latest/user_guide/playbooks_blocks.html)

Walter

---

<div class="post-metadata">

**Author:** ![Daniel\_Barros](https://avatars.discourse-cdn.com/v4/letter/d/7993a0/32.png) [@Daniel\_Barros](https://forum.ansible.com/u/Daniel_Barros)\
**Post date:** [August 18, 2022, 6:05pm UTC](https://forum.ansible.com/t/understanding-block-and-rescue/37004/3 "2022-08-18T18:05:55Z")

</div>

Hi, I believe I replied only to the author, so sorry if anyone is seeing duplicated messages from me.

But try moving the task that failed inside the block. Its currently outside
