Как игнорировать определенную строку ошибки вывода в Ansible и считать успешным

Я пытаюсь игнорировать какое-либо сообщение об ошибке в выходных файлах для воспроизведения, которое имеет сообщение об ошибке ниже.

fatal: [192.168.0.1]: FAILED! => {"changed": false, "failed": true, "msg": «Отправка паролей в текстовом формате без SSL / TLS крайне небезопасна .. Запрос == CHANGE MASTER TO ['MASTER_HOST =% (master_host) s' , 'MASTER_USER =% (master_user) s', 'MASTER_PASSWORD =% (master_password) s', 'MASTER_LOG_FILE =% (master_log_file) s', 'MASTER_LOG_POS =% (master_log_pos) s'] "}

> Task: > - name: Setup Replication become: true mysql_replication: > login_host: "{{ slave_ip }}" > login_user: "user" > login_password: "***" > mode: changemaster > master_host: "{{ master_ip }}" > master_log_file: mysql-bin.000001 > master_log_pos: 107 > master_user: "{{ mysql_replicator_user }}" > master_password: "{{ mysql_replicator_password }}" 

При удаче? как добиться этого?

EDITED: Ответ Марко. Ответ. Ну, это проблема здесь, я не знаю, какую ошибку я могу получить. Но я уверен, что если err msg содержит «Отправка паролей в текстовом формате без SSL», тогда игнорируйте, если нет, а любая другая ошибка не игнорируется. Объяснить простое исключение Throw, если ошибка msg не содержит -> 'null' или SSL. "

  • Необходимая помощь
  • Ansible - настройка экземпляра AWS EC2 после его создания
  • Могу ли я просматривать задачи, которые будут выполняться с помощью загружаемой книги?
  • Ansible failed_when только распечатать настроенное сообщение об ошибке
  • Принимая значение регистра и используя его позже как переменную
  • Список ВСЕХ Ansible переменных для хоста или группы с помощью специальной команды?
  • Невозможно использовать имя_ инвентаря__охотника или ansible_hostname в имени задачи
  • Ожидаемые возобновляемые пьесы ?
  • One Solution collect form web for “Как игнорировать определенную строку ошибки вывода в Ansible и считать успешным”

    Существует несколько вариантов обработки ошибок в Ansible. Вы можете использовать ignore_errors: yes в своей задаче. Если вы не хотите игнорировать все ошибки, вы можете указать, что именно представляет собой ошибку, используя что-то вроде:

     - name: task name module: arguments ... register: out failed_when: 'error message' in out.stderr 

    Если вы хотите добавить более сложные проверки сбоев, вы можете разделить обработку ошибок на отдельную задачу следующим образом:

     - name: test shell: echo error; exit 123 register: out ignore_errors: yes - fail: msg="{{ out.stdout }}" when: "out.rc != 0 and 'error' not in out.stdout" 

    В этом примере первая задача выходит из строя с кодом возврата 123 и печатает «ошибку» на стандартном выходе. Это будет зарегистрировано, но будет проигнорировано. Вторая задача анализирует выходные значения и терпит неудачу, только если код возврата отличается от нуля. И стандартный вывод НЕ содержит строку «error».

    Вы можете прочитать более подробную информацию в документации Ansible: https://docs.ansible.com/ansible/playbooks_error_handling.html

    Linux и Unix - лучшая ОС в мире.