Ansible - Как проверить на наличие определенной подстроки при использовании цикла «до»? - PullRequest
0 голосов
/ 22 октября 2019

У меня есть задача проверить, перезагрузился ли мой коммутатор, и я хочу запускать задачу, пока она не вернет успешный пинг. У меня есть переключатель Aruba 2530, и когда я пингую его вручную, я получаю в ответ следующую строку:

192.168.12.200 жив, время = 2 мс

Моя идея состоит в том, чтобы проверить слово «вживую» в возвращаемой строке, чтобы убедиться, что пинг прошел успешно. Это даже идеальный способ пойти? О, и я использую модули из https://github.com/aruba/aruba-switch-ansible

Задача, которую я имею, выглядит следующим образом:

  arubaos_switch_ssh_cli:
    ip: "{{ ansible_host }}"
    user: "{{ ansible_user }}"
    password: "{{ ansible_password }}"
    show_command: "ping 192.168.12.200"
  register: ping_result
  retries: 12
  delay: 5
  until: ???"

Я попытался найти ответ в Google и попробовал несколько различных синтаксисов. Большинство вещей, которые я обнаружил, рассматривают условие «когда», поэтому я не уверен, как «когда» и «до» сравниваются друг с другом, когда смотрят на их синтаксис.

Я пытался выполнить следующее:

"'alive' in ping_result.cli_output"

"ping_result.cli_output | search('alive')

"{{ 'alive' in ping_result.cli_output }}"

и несколько других, которые не работали ...

Спасибо всем заранее!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...