From 7b76da2d4ce27ffb52954b56239d8fba0e75c1c6 Mon Sep 17 00:00:00 2001 From: Joshua Smith Date: Fri, 2 Feb 2018 13:20:03 -0500 Subject: [PATCH] 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. --- docs/docsite/rst/playbooks_blocks.rst | 73 ++++++++++++++++----------- 1 file changed, 44 insertions(+), 29 deletions(-) diff --git a/docs/docsite/rst/playbooks_blocks.rst b/docs/docsite/rst/playbooks_blocks.rst index 1a0b6f302a..5bb725d9d8 100644 --- a/docs/docsite/rst/playbooks_blocks.rst +++ b/docs/docsite/rst/playbooks_blocks.rst @@ -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::