Невозможно найти выходные данные команды show Cisco, используя Ansible - PullRequest
0 голосов
/ 19 декабря 2018

Running 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)

Я хочу прочитать в выводе команды show run на коммутаторе Cisco, а затем найти этот выводдля конкретных фраз в выводе.Если совпадение найдено, я хочу, чтобы сообщение отображалось на экране, но совпадение не найдено.

PLAY [переключатели] *****************************************************************************************************************************************************************************************************************************

ЗАДАЧА [Сбор фактов] ********************************************************************************************************************************************************************************************************************** ok: [10.10.2.68]

TASK [показать запуск на удаленных устройствах]*********************************************************************************************************************************************************************************************************** хорошо: [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

, но это дает мне следующую ошибку:

fatal: [10.10.2.68]: FAILED!=> {"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 голосов
/ 20 декабря 2018

'объект списка' не имеет атрибута 'find'

Я не уверен, насколько яснее можно ожидать сообщения об ошибке, но в этом случае output.stdoutlist, а не str

Так что вам понадобится

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

или строго питонический способ

"enable" in "\n".join(output.stdout)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...