运行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“}
知道我在做什么错吗?
答案 0 :(得分:0)
“列表对象”没有属性“查找”
我不确定错误消息的清晰程度如何,但是在这种情况下,output.stdout
是list
,而不是str
所以你想要
"enable" in (output.stdout | join("\n"))
或严格的pythonic方式
"enable" in "\n".join(output.stdout)