使用ios_module的With_items和“已注册”输出,以及stdout_lines中缺少换行符

时间:2018-12-10 21:58:33

标签: loops

我正在尝试创建一个戏剧来收集任何更改后的网络信息(基本上是使用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])。

有什么主意吗?

0 个答案:

没有答案