Рубрики
ansible

ansible перехват и контроль ошибок / игнор / failed_when / result.rc / any_errors_fatal

playbook.yml пытаемся установить не существующий пакет treeee и выводим echo

---
- name:  Error find and control
  hosts: all
  become: yes

  tasks:
  - name: Tasks number1
    yum: name=treeee state=present

  - name: Tasks number2
    shell: echo Hellow world!

  - name: Tasks number3
    shell: echo Privet Man!

...



playbook.yml ignore_errors игнорим ошибки и выполняем следующие таски

---
- name:  Error find and control
  hosts: all
  become: yes

  tasks:
  - name: Tasks number1
    yum: name=treeee state=present
    ignore_errors: yes

  - name: Tasks number2
    shell: echo Hellow world!

  - name: Tasks number3
    shell: echo Privet Man!

...



playbook.yml дебаг ignore_errors

---
- name:  Error find and control
  hosts: all
  become: yes

  tasks:
  - name: Tasks number1
    yum: name=treeee state=present
    ignore_errors: yes

  - name: Tasks number2
    shell: ls -la /var/
    register: results

  - debug:
      var: results

  - name: Tasks number3
    shell: echo Privet Man!

...





playbook.yml failed_when

---
- 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!

...




playbook.yml failed_when result.rc

---
- 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: result.rc == 0
#    failed_when: "'world' in results.stdout"

  - debug:
      var: results

  - name: Tasks number3
    shell: echo Privet Man!

...



playbook.yml выполнится только там где есть file1.txt

---
- name: Test ansible
  hosts: all
  become: yes

  tasks:
  - name: Tasks number1
    yum: name=treeee state=present
    ignore_errors: yes

  - name: Tasks number2
    shell: cat /home/secret/file1.txt
    register: results

  - debug:
      var: results

  - name: Tasks number3
    shell: echo Privet Man!

...

playbook.yml any_errors_fatal

---
- name: Test ansible
  hosts: all
  any_errors_fatal : true
  become: yes

  tasks:
  - name: Tasks number1
    yum: name=treeee state=present
    ignore_errors: yes

  - name: Tasks number2
    shell: cat /home/secret/file71.txt
    register: results

  - debug:
      var: results

  - name: Tasks number3
    shell: echo Privet Man!

...