Ansible : fail & fail_when & change_when & check_mode & register & ignore_errors
fail & failed_when:
- hosts: buster
remote_user: root
tasks:
- shell: "echo 'This is a string for testing--error'"
register: value
- debug:
msg: "2"
# - fail:
- fail:
msg: "Interrupted On Purpose"
when: '"error" in value.stdout'
- debug:
msg: "3"
- debug:
msg: "4"
- hosts: buster
remote_user: root
tasks:
- debug:
msg: "I execute normally"
- shell: "echo 'This is a string for testing error'"
register: return_value
failed_when: ' "error" in return_value.stdout'
- debug:
msg: "I never execute,Because the playbook has stopped"
changed_when:
- hosts: buster
remote_user: root
gather_facts: false
tasks:
- debug:
msg: "debug msg"
changed_when: true
- shell: "pwd"
changed_when: false
check_mode:
- hosts: buster
remote_user: root
gather_facts: false
tasks:
- shell: pwd
register: value
check_mode: true
- debug:
msg: "stdout: {{ value.stdout }}"
register:
- hosts: buster
remote_user: root
gather_facts: false
tasks:
- name: register user
raw: whoami
register: value
- debug:
# var: user
msg: "User: {{ value.stdout }}"
ignore_errors:
- hosts: buster
remote_user: root
gather_facts: true
tasks:
- name: pp
shell: |
echo aaaaa
ech bbbb
ignore_errors: true
- debug: msg="{{ ansible_distribution }}"
- block:
- name: aa
command: echo aa
- name: bb
shell: echo bb
when: ansible_os_family == "RedHat"