mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
173f27531c
added docs for new v2 features restructures modules bar and core/extras info into their own pages changed templates to refer to the new pages added some missing ansible.cfg options more info on gathering setting
72 lines
1.9 KiB
ReStructuredText
72 lines
1.9 KiB
ReStructuredText
Blocks
|
|
======
|
|
|
|
In 2.0 we added a block feature to allow for logical grouping of tasks and even
|
|
in play error handling. Most of what you can apply to a single task can be applied
|
|
at the block level, which also makes it much easier to set data or directives common
|
|
to the tasks.
|
|
|
|
|
|
Example::
|
|
|
|
tasks:
|
|
- block:
|
|
|
|
- yum: name={{ item }} state=installed
|
|
with_items:
|
|
- httpd
|
|
- memcached
|
|
|
|
- template: src=templates/src.j2 dest=/etc/foo.conf
|
|
|
|
- service: name=bar state=started enabled=True
|
|
|
|
when: ansible_distribution == 'CentOS'
|
|
become: true
|
|
become_user: root
|
|
|
|
In the example above the 3 tasks will be executed only when the block's when condition is met and enables
|
|
privilege escalation for all the enclosed tasks.
|
|
|
|
|
|
.. _block_error_handling:
|
|
|
|
Error Handling
|
|
``````````````
|
|
|
|
About Blocks
|
|
Blocks also introduce the ability to handle errors in a way similar to exceptions in most programming languages.::
|
|
|
|
tasks:
|
|
- block:
|
|
- debug: msg='i execute normally'
|
|
- command: /bin/false
|
|
- debug: msg='i never execute, cause ERROR!'
|
|
rescue:
|
|
- debug: msg='I caught an error'
|
|
- command: /bin/false
|
|
- debug: msg='I also never execute :-('
|
|
always:
|
|
- debug: msg="this always executes"
|
|
|
|
|
|
The tasks in the ``block`` would execute normally, if there is any error the ``rescue`` section would get executed
|
|
with whatver you need to do to recover from the previous error. The ``always`` section runs no matter what previous
|
|
error did or did not occur in the ``block`` and ``rescue`` sections.
|
|
|
|
|
|
|
|
.. seealso::
|
|
|
|
:doc:`playbooks`
|
|
An introduction to playbooks
|
|
:doc:`playbooks_roles`
|
|
Playbook organization by roles
|
|
`User Mailing List <http://groups.google.com/group/ansible-devel>`_
|
|
Have a question? Stop by the google group!
|
|
`irc.freenode.net <http://irc.freenode.net>`_
|
|
#ansible IRC chat channel
|
|
|
|
|
|
|
|
|