Ansible игнорирует ошибку

Ansible Ignoriruet Osibku



При настройке задачи на другом хост-устройстве часто возникают ошибки Ansible. Они представляют собой уникальные и, возможно, важные состояния системы. Несмотря на это, могут быть некоторые ошибки, которых мы хотим избежать, чтобы задачи также выполнялись и показывали вывод, если они были успешно выполнены. В этой статье мы поговорим об ошибках Ansible и о том, как их игнорировать. Мы специально демонстрируем метод подавления и игнорирования сбоев с помощью Ansible.

В отличие от исправления ошибок, предотвращение сбоев влечет за собой продолжение выполнения задач настолько, насколько это не влияет на активность в плейбуке Ansible. Инструмент ansible выдает предупреждающее сообщение, когда не может завершить задачу или книгу воспроизведения во время отладки задачи. Есть несколько причин, но мы должны определить их и найти решение. К сожалению, не все ошибки можно исправить. Вы можете начать игнорировать ошибки, если не хотите или не можете решить проблему.







Большинство контролирующих менеджеров в Ansible используют эту стратегию при подключении к целевым хостам в реальных сценариях. По умолчанию Ansible прекращает действия на целевом устройстве и продолжает работу на некоторых других серверах всякий раз, когда возвращает ненулевой результат из инструкции или ошибку из пакета. Хотя есть определенные ситуации, когда вы можете захотеть действовать по-другому. Возвращаемый результат, отличный от нуля, иногда указывает на прогресс. Часто вам может потребоваться остановить обработку на одном сервере, чтобы она остановилась на всех хостах.



Способы игнорирования ошибок в Ansible

В Ansible разные способы используются для выполнения задач плейбука, если он показывает сбой задачи. Ниже приведены различные способы, которые помогут выполнить задачу, даже если Ansible показывает ошибки:



1. Использование команды Ignore_Errors=True





Несмотря на то, что задача продолжает давать сбой, плейбук продолжает выполняться, если вы укажете команду ignore_errors=true внизу действия. Несмотря на заботу о завершении задачи или неудачах, она все равно выполняет последующую деятельность. Если каким-то образом действие оказывается неудачным, оно переходит к следующему. Если действие успешно, оно завершает процесс после этого.

2. Использование режима проверки в Ansible



Используйте специальные логические переменные, режим проверки Ansible, который определяется как True, когда Ansible находится в методе проверки, чтобы обойти задачу или игнорировать сбои в задаче всякий раз, когда используется версия метода проверки Ansible.

3. Использование команды Failed=When в Ansible Playbook

В Ansible мы также можем использовать условие failed_when, чтобы указать, какой «сбой» подразумевается для каждого действия. Подобно всем условным операторам Ansible, списки многочисленных критериев failed_when объединены с неявным. Таким образом, задача не выполняется только в том случае, если выполняются все условия.

Предпосылки для игнорирования ошибок в Ansible

Инструмент конфигурации Ansible должен соответствовать необходимым критериям для включения конкретного примера:

  • Основной сервер Ansible или, можно сказать, контролирующий сервер необходим, чтобы мы могли настраивать команды на целевом устройстве.
  • Нам нужны локальные хосты, чтобы мы могли связаться с каждым из них, чтобы использовать различные способы игнорирования ошибок в программном обеспечении Ansible. В этом случае мы используем локальный хост в качестве целевого удаленного сервера на время действия.
  • Мы пишем плейбуки, запускаем команды Ansible ignore error и используем устройство ansible-controller для отслеживания результатов на удаленных хостах.

Чтобы помочь учащемуся понять принцип использования ошибки игнорирования в плейбуке Ansible, давайте реализуем следующий пример:

Пример: использование команды Ignore_Errors=True

Это самый простой пример, который использует Ansible для реализации, когда мы включаем несколько задач в playbook и выполняем задачи с помощью команды ignore error. Для этого сначала напишем следующий код в терминале Ansible:

[ корень @ Мастер Ансибл ] # нано ignore_errors.yml

После создания и запуска playbook ignore_errors.yml мы теперь начинаем вводить команды в playbook. Во-первых, мы используем опцию «hosts», передавая указанные хосты как «localhost». Мы вводим значение «ложь» в аргумент «собирать факты», чтобы мы не могли получить дополнительную информацию о локальном хосте при запуске плейбука.

После этого мы начинаем перечислять каждую задачу, которую мы хотим выполнить, в разделе «задачи». В первой задаче мы отображаем документ, которого нет в каталоге Ansible. Сначала мы передаем название задачи, которую хотим реализовать. Затем мы используем параметр команды и сохраняем несуществующий текстовый документ и используем «ls», чтобы мы могли выполнить команду в первой задаче. После первой задачи мы используем команду ignore_errors=true, чтобы в случае сбоя задачи над оператором ignore она игнорировала задачу и переходила к следующей задаче и выполняла ее.

Перечислим еще одну задачу, которая используется. Если первая задача не удалась, инструмент Ansible должен выполнить следующую задачу. Затем мы используем параметр отладки для запуска задачи в playbook.

- хосты: локальный
собрать_факты: ЛОЖЬ
задания:
- имя: Список несуществующего файл
команда: лс несуществующий.txt
ignore_errors: истинный

- имя: продолжать задание после неудачи
отлаживать:
сообщение: «Продолжить задачу после сбоя»

Теперь мы перечисляем достаточно задач для выполнения и проверяем команду игнорирования ошибки. Теперь мы завершаем playbook и возвращаемся к основному терминалу. После этого запускаем playbook. Для этого мы используем следующее утверждение:

[ корень @ Мастер Ансибл ] # ansible-playbook ignore_errors.yml

После выполнения вышеупомянутой команды мы получаем следующий вывод. Как видите, первая задача, в которой указан несуществующий файл, показывает сбой. Но вторая задача выполняется успешно, потому что мы проигнорировали первую задачу, используя ignore_error=true в плейбуке.

Заключение

Мы узнали, что означает ошибка игнорирования в Ansible. Мы обсудили, как это работает в плейбуке Ansible. Мы также обсудили различные способы игнорирования ошибки в Ansible при выполнении задач. Мы реализовали пример, чтобы каждая концепция была понятна пользователю.