Ansible-Playbook to display output of multiple show commands (using stdout_lines with Loop)

 In this playbook, we we'll see how we can get display of multiple show commands in stdout_lines format. We can make use of loops (or with_items) for submitting multiple commands, but debug output with stdout_lines does not gives the formatted result as it would give for single command. So in case of multiple commands, we can debug the output of each command separately in stdout_lines format.


#Ansible-Playbook to display Output of multiple show commands

- name: Display Output of multiple show commands
  hosts: all
  gather_facts: no
  connection: network_cli
  become: no
  become_method: enable
  tasks:

   - name: Get the config
     cli_command:
      command: "{{ item }}"
     register: result

     with_items:
       - show ip access-lists TestACL-1 | include 150
       - show ip access-lists TestACL-2 | include 250
       - show run | include file|bgp
       - show snmp user | i snmp-user


   - debug:
       msg:
         - "{{ result.results[0].stdout_lines }}"
         - "{{ result.results[1].stdout_lines }}"
         - "{{ result.results[2].stdout_lines }}"
         - "{{ result.results[3].stdout_lines }}"


# Debug output can also be displayed using following lines
#  - debug:
#      msg: "{{ item.stdout_lines }}"
#    with_item

Comments

  1. This comment has been removed by the author.

    ReplyDelete
  2. Thank you for sharing amazing and useful information with everyone. Ansible Playbook captures show output from multiple show commands on a Cisco router and then stores the output in a text file that is the hostname of the device and runbook also helps. Runbooks Vs playbooks are tools best used in tandem. But also build your organization towards a greater goal of removing human toil altogether by embracing practices that have been built into development workflows for years.

    ReplyDelete

Post a Comment