我正在尝试创建一个戏剧来收集任何更改后的网络信息(基本上是使用ios_command模块从远程网络设备进行可达性测试和/或路由跟踪。如果我将所有命令作为单独的项目以列表格式(基本上是硬代码) ping目标),在输出中将以换行符等方式很好地打印输出。我可以在调试时使用stdout_lines:msg输出并获取结构化的输出数据。
如果我想将这些ping目标放入文件中并在播放中使用引用此变量的with_items,请在播放执行期间注册输出,然后在后续播放中使用调试模块(再次使用with_items)stdout_lines中的数据没有换行符(通过调试输出时,似乎用“ u”代替换行符)。
“ msg”:[ “第1行[[u'类型转义序列以异常终止。',u'将3个100字节的ICMP Echos发送到172.16.8.231,超时为2秒:',u'发送了源地址为172.16.40.2的数据包” ,u'!!!',u'成功率是100%(3/3),往返最小/平均/最大= 23/23/23 ms'],[u'类型要中止的转义序列。', u将路线追踪到172.16.8.231',u'VRF信息:(vrf输入名称/ id,vrf输出名称/ id)',u'1 172.16.40.3 2毫秒',u'2 172.30.200.1 23毫秒' ,u'3 172.20.2.41 24毫秒',u'4 172.16.8.231 23毫秒']“,
这是任务
- name: Ping Devices
ios_command:
commands:
- "ping {{item}} source Po1.20 re 3"
- "tracerout {{item}} source Po1.20 probe 1 timeout 1 ttl 1 6"
register: output
with_items: "{{PING_TARGETS}}"
- name: show registered output
debug:
msg:
- "line 1{{ output.results[0].stdout_lines }} "
- "line 2 is {{output.results[1].stdout_lines}} "
当打印时,这是一条长长的线,这使得很难解密(尤其是走线)。 我试过在调试端使用with_items与“ output.results”,然后在输出语句中使用“ item”,但是我无法得到它来输出所需的结果(这就是为什么我将列表号指定为output.results [0])。
有什么主意吗?