Playbook debugging

Playbooks can be interactively debugged by using an execution strategy  that was introduced in Ansible 2.1, the debug strategy. If a play uses this strategy, when an error state is encountered an interactive debugging session starts. This interactive session can be used to display variable data, display task arguments, update task arguments, update variables, redo task execution, continue execution, or exit the debugger.

Let's demonstrate this with a play that has a successful task, followed by a task with an error, followed by a final successful task. We'll reuse the playbook we've been using, but update it a bit, as shown in the following code:

--- 
- name: sub-element access styles 
  hosts: localhost 
  gather_facts: false 
  strategy: debug 
 
  vars: 
    - derp: 
        keys: 
          - c 
          - d 
 
  tasks: 
    - name: subscript style 
      debug: 
        var: derp['keys'] 
 
    - name: failing task 
      debug: 
        msg: "this is {{ derp['missing'] }}" 
 
    - name: final task 
      debug: 
        msg: "my only friend the end" 

Upon execution, Ansible will encounter an error in our failing task and present the (debug) prompt, as shown in the following screenshot:

From this prompt, we can display the task and the arguments to the task by using the p command, as follows:

We can also change the playbook on the fly to try different arguments or variable values. Let's define the missing key of the derp variable, and then retry the execution. All of the variables are within the top-level vars dictionary. We can directly set the variable data using Python syntax and the task_vars command, and then retry with the r command:

The debug execution strategy is a handy tool for quickly iterating through different task argument and variable combinations to figure out the correct path forward. However, because errors result in interactive consoles, the debug strategy is inappropriate for automated executions of playbooks, as there is no human on the console to manipulate the debugger.

Changing data within the debugger will not save the changes to backing files. Always remember to update playbook files to reflect discoveries that are made during debugging.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.227.190.93