Инструменты пользователя

Инструменты сайта


linux:ansible:error

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
linux:ansible:error [2023/11/27 22:57]
werwolf
linux:ansible:error [2023/11/27 23:13] (текущий)
werwolf [failed_when]
Строка 1: Строка 1:
-====Действия в случае ошибки.====+=====Действия в случае ошибки.=====
  
 Рассмотрим 2 варианта:​ Рассмотрим 2 варианта:​
Строка 9: Строка 9:
 </​note>​ </​note>​
  
-Рассмотрим пример.+====Примеры.====
  
 а) Выполнять задачу после rescue, если основной сценарий выполнился с ошибкой:​ а) Выполнять задачу после rescue, если основной сценарий выполнился с ошибкой:​
Строка 45: Строка 45:
 </​code>​ </​code>​
 * в данном примере мы отобразим текст Show error только при наличии ошибки,​ а также выполним команду rm -f /tmp/test независимо от исхода работы сценария. * в данном примере мы отобразим текст Show error только при наличии ошибки,​ а также выполним команду rm -f /tmp/test независимо от исхода работы сценария.
 +
 +====any_errors_fatal====
 +Чтобы при ошибке выполнения на одном из серверов прекратилось выполнение на всех, нужно добавить any_errors_fatal:​ true перед блоком задач
 +
 +<code bash>
 +- name: test-playbook
 +  hosts: servers
 +  any_errors_fatal:​ true
 +  tasks:
 +    - name: Создание файла
 +      file:
 +        dest: /​home/​file.txt
 +        state: touch
 +        owner: root
 +        group: root
 +        mode: 0644
 +</​code>​
 +
 +====ignore_errors====
 +
 +При запуске playbook, если на одном из серверов какая-либо задаче не выполнилась,​ то все последующие задачи на этом сервере не будут выполнены,​ чтобы этого не произошло нужно добавить флаг ignore_errors:​ yes, тогда если в этой задаче произойдет ошибка последующие все равно будут выполняться.
 +
 +<code bash>
 +---
 +- name: test-playbook
 +  hosts: servers
 +  tasks:
 +    - name: Создание файла
 +      file:
 +        dest: /​home/​file.txt
 +        state: touch
 +        owner: root
 +        group: root
 +        mode: 0644
 +      ignore_errors:​ yes
 +</​code>​
 +
 +==== failed_when ====
 +Вы можете использовать ключевое слово error_when для управления поведением задачи
 +
 +Пример:​
 +
 +<code bash>
 +---
 +- name: Test ansible
 +  hosts: all
 +  become: yes
 + 
 +  tasks:
 +  - name: Tasks number1
 +    yum: name=treeee state=present
 +    ignore_errors:​ yes
 + 
 +  - name: Tasks number2
 +    shell: echo Hellow world
 +    register: results
 +    failed_when:​ "'​world'​ in results.stdout"​
 + 
 +  - debug:
 +      var: results
 + 
 +  - name: Tasks number3
 +    shell: echo Privet Man!
 + 
 +...
 +</​code>​
 +
 +
linux/ansible/error.1701115057.txt.gz · Последние изменения: 2023/11/27 22:57 — werwolf