I am trying to parse using textfsm but getting below error , any suggestions ? any easy way to just parse and print like below
Destination: 8.8.8.8 TX:15 packets RX:15 packets PKTLOSS:0%
right now i am generating output1 and from there want to parse using textfsm which is output2. but is there way to parse ping using texfsm directly from output0 ?
- name: output0
debug:
msg: "{{ping.results|map(attribute='output')|list}}"
- name: output1
debug:
msg:
- "{{r1.0.split('
')[-5]}} {{r1.0.split('
')[-4]}}"
- "{{r2.0.split('
')[-5]}} {{r2.0.split('
')[-4]}}"
vars:
r1: "{{ ping.results|map(attribute='output')|first }}"
r2: "{{ ping.results|map(attribute='output')|last }}"
register: externalping
- name: output2
debug:
msg: "{{externalping.msg | parse_cli_textfsm('templates/ping.textfsm')}}"
my textfsm template
Value Destination (S+)
Value TX (S+)
Value RX (S+)
Value PKTLOSS (S+)
Start
^---s+${Destination}s+pings+statisticss+---
s+${TX}s+packetss+transmitted,s+${RX}s+packetss+received,s+${PKTLOSS}s+packetss+loss+
-> Record
error on parsing ping results using textfsm
```TASK [output0] ************************* ok: [route-server.ip.att.net] => { "msg": [ [ " ping 8.8.8.8 count 15 PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: icmp_seq=0 ttl=118 time=4.108 ms 64 bytes from 8.8.8.8: icmp_seq=1 ttl=118 time=4.100 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=118 time=4.115 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=118 time=7.177 ms 64 bytes from 8.8.8.8: icmp_seq=4 ttl=118 time=4.132 ms 64 bytes from 8.8.8.8: icmp_seq=5 ttl=118 time=4.129 ms 64 bytes from 8.8.8.8: icmp_seq=6 ttl=118 time=4.119 ms 64 bytes from 8.8.8.8: icmp_seq=7 ttl=118 time=4.155 ms 64 bytes from 8.8.8.8: icmp_seq=8 ttl=118 time=4.085 ms 64 bytes from 8.8.8.8: icmp_seq=9 ttl=118 time=4.075 ms 64 bytes from 8.8.8.8: icmp_seq=10 ttl=118 time=10.247 ms 64 bytes from 8.8.8.8: icmp_seq=11 ttl=118 time=4.274 ms 64 bytes from 8.8.8.8: icmp_seq=12 ttl=118 time=4.581 ms 64 bytes from 8.8.8.8: icmp_seq=13 ttl=118 time=4.125 ms 64 bytes from 8.8.8.8: icmp_seq=14 ttl=118 time=4.037 ms --- 8.8.8.8 ping statistics --- 15 packets transmitted, 15 packets received, 0% packet loss round-trip min/avg/max/stddev = 4.037/4.764/10.247/1.652 ms [email protected]>" ], [ " ping 1.1.1.1 count 15 PING 1.1.1.1 (1.1.1.1): 56 data bytes 64 bytes from 1.1.1.1: icmp_seq=0 ttl=57 time=4.967 ms 64 bytes from 1.1.1.1: icmp_seq=1 ttl=57 time=4.934 ms 64 bytes from 1.1.1.1: icmp_seq=2 ttl=57 time=4.969 ms 64 bytes from 1.1.1.1: icmp_seq=3 ttl=57 time=4.921 ms 64 bytes from 1.1.1.1: icmp_seq=4 ttl=57 time=4.994 ms 64 bytes from 1.1.1.1: icmp_seq=5 ttl=57 time=4.895 ms 64 bytes from 1.1.1.1: icmp_seq=6 ttl=57 time=4.588 ms 64 bytes from 1.1.1.1: icmp_seq=7 ttl=57 time=4.847 ms 64 bytes from 1.1.1.1: icmp_seq=8 ttl=57 time=5.001 ms 64 bytes from 1.1.1.1: icmp_seq=9 ttl=57 time=4.958 ms 64 bytes from 1.1.1.1: icmp_seq=10 ttl=57 time=4.845 ms 64 bytes from 1.1.1.1: icmp_seq=11 ttl=57 time=4.971 ms 64 bytes from 1.1.1.1: icmp_seq=12 ttl=57 time=5.003 ms 64 bytes from 1.1.1.1: icmp_seq=13 ttl=57 time=4.642 ms 64 bytes from 1.1.1.1: icmp_seq=14 ttl=57 time=4.914 ms --- 1.1.1.1 ping statistics --- 15 packets transmitted, 15 packets received, 0% packet loss round-trip min/avg/max/stddev = 4.588/4.897/5.003/0.121 ms [email protected]>" ] ] } TASK [output1] ***************************************************** ok: [route-server.ip.att.net] => { "msg": [ "--- 8.8.8.8 ping statistics --- 15 packets transmitted, 15 packets received, 0% packet loss ", "--- 1.1.1.1 ping statistics --- 15 packets transmitted, 15 packets received, 0% packet loss " ] } TASK [output2] *************************************************** fatal: [route-server.ip.att.net]: FAILED! => {"msg": "parse_cli_textfsm input should be a string, but was given a input of "}```