mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-08-24 15:01:43 -07:00
Update some examples to use proper YAML syntax. (#35640)
* Update some examples to use proper YAML syntax. * Make the requested changes so this builds properly. Also fix emphasis line numbers to match what was being emphasized before the change.
This commit is contained in:
parent
3dfede5642
commit
7b76da2d4c
1 changed files with 44 additions and 29 deletions
|
@ -8,19 +8,26 @@ Blocks allow for logical grouping of tasks and in play error handling. Most of w
|
|||
:emphasize-lines: 3
|
||||
:caption: Block example
|
||||
|
||||
tasks:
|
||||
- name: Install Apache
|
||||
block:
|
||||
- yum: name={{ item }} state=installed
|
||||
loop:
|
||||
- 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
|
||||
|
||||
tasks:
|
||||
- name: Install Apache
|
||||
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, each of the 3 tasks will be executed after appending the `when` condition from the block
|
||||
and evaluating it in the task's context. Also they inherit the privilege escalation directives enabling "become to root"
|
||||
|
@ -38,22 +45,27 @@ Error Handling
|
|||
Blocks also introduce the ability to handle errors in a way similar to exceptions in most programming languages.
|
||||
|
||||
.. code-block:: YAML
|
||||
:emphasize-lines: 3,7,11
|
||||
:emphasize-lines: 3,9,15
|
||||
:caption: Block error handling example
|
||||
|
||||
tasks:
|
||||
- name: Attempt and gracefull roll back demo
|
||||
block:
|
||||
- debug: msg='I execute normally'
|
||||
- command: /bin/false
|
||||
- debug: msg='I never execute, due to the above task failing'
|
||||
rescue:
|
||||
- debug: msg='I caught an error'
|
||||
- command: /bin/false
|
||||
- debug: msg='I also never execute :-('
|
||||
always:
|
||||
- debug: msg="this always executes"
|
||||
|
||||
tasks:
|
||||
- name: Attempt and gracefull roll back demo
|
||||
block:
|
||||
- debug:
|
||||
msg: 'I execute normally'
|
||||
- command: /bin/false
|
||||
- debug:
|
||||
msg: 'I never execute, due to the above task failing'
|
||||
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 whatever you need to do to recover from the previous error. The ``always`` section runs no matter what previous
|
||||
|
@ -64,21 +76,24 @@ error did or did not occur in the ``block`` and ``rescue`` sections. It should b
|
|||
Another example is how to run handlers after an error occurred :
|
||||
|
||||
.. code-block:: YAML
|
||||
:emphasize-lines: 5,9
|
||||
:emphasize-lines: 6,10
|
||||
:caption: Block run handlers in error handling
|
||||
|
||||
|
||||
tasks:
|
||||
- name: Attempt and gracefull roll back demo
|
||||
block:
|
||||
- debug: msg='I execute normally'
|
||||
- debug:
|
||||
msg: 'I execute normally'
|
||||
notify: run me even after an error
|
||||
- command: /bin/false
|
||||
rescue:
|
||||
- name: make sure all handlers run
|
||||
meta: flush_handlers
|
||||
handlers:
|
||||
handlers:
|
||||
- name: run me even after an error
|
||||
debug: msg='this handler runs even on error'
|
||||
debug:
|
||||
msg: 'this handler runs even on error'
|
||||
|
||||
.. seealso::
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue