无法使用Ansible搜索Cisco show命令的输出

时间:2018-12-19 18:27:38

标签: ansible cisco

运行Ansible 2.7.4

我有以下代码:

- hosts: switches
  tasks:
  - name: show run on remote devices
    ios_command:
      commands: show run
    register: output

  - name: Display The Results
    debug:
      msg: "Enable Secret Found"
    when: ('secret' in output.stdout)

我想在Cisco交换机上读入show run命令的输出,然后在该输出中搜索输出中的特定短语。 如果找到匹配项,我希望在屏幕上显示一条消息,但是找不到匹配项。

PLAY [开关] *********************************************** ****************************************************** ****************************************************** ****************************************************** ****************************

任务[聚会事实] ********************************************** ****************************************************** ****************************************************** ****************************************************** ********************** 好的:[10.10.2.68]

任务[显示在远程设备上运行] ******************************************* ****************************************************** ****************************************************** ****************************************************** ************** 好的:[10.10.2.68]

任务[显示结果] ********************************************* ****************************************************** ****************************************************** ****************************************************** ******************* 跳过:[10.10.2.68]

PLAY RECAP ********************************************* ****************************************************** ****************************************************** ****************************************************** *********************************** 10.10.2.68:ok = 2更改= 0不可达= 0失败= 0

我还尝试过将when语句更改为

when: output.stdout.find('enable') != -1

但这给了我以下错误:

致命:[10.10.2.68]:失败! => {“ msg”:“条件检查'output.stdout.find('enable')!= -1'失败。错误是:评估条件(output.stdout.find('enable')!=时出错-1):“列表对象”没有属性“查找” \ n \ n错误似乎出在“ /etc/ansible/playbooks/showrun2.yml”中:第8行,第5列,但可能\ n文件,具体取决于确切的语法问题。\ n \ n出现问题的行似乎是:\ n \ n \ n-名称:显示结果\ n ^此处\ n“}

知道我在做什么错吗?

1 个答案:

答案 0 :(得分:0)

  

“列表对象”没有属性“查找”

我不确定错误消息的清晰程度如何,但是在这种情况下,output.stdoutlist,而不是str

所以你想要

"enable" in (output.stdout | join("\n"))

或严格的pythonic方式

"enable" in "\n".join(output.stdout)