Tasks können mit dem Keyword when
nur unter bestimmten Bedingungen ausgeführt werden.
tasks:
- name: Shut down Debian flavored systems
ansible.builtin.command: /sbin/shutdown -t now
when: ansible_facts['os_family'] == "Debian"
In Tasks können Rückgabewerte von Operationen gespeichert werden.
- name: Check if a file exists
stat:
path: /path/to/file.txt
register: file_info # <- dictionary
... do something ...
when: not file_info.stat.exists
Übung: Es soll der Inhalt von /proc/cmdline
ausgelesen und alle verfügbaren consoles ausgegeben werden
- name: Verify existence of /proc/cmdline
ansible.builtin.stat:
path: /proc/cmdline
register: file_info
- name: Print error if file is not found
ansible.builtin.debug:
msg: File /proc/cmdline not found
when: not file_info.stat.exists
- name: Get contents of /proc/cmdline
ansible.builtin.command: cat /proc/cmdline
register: cmd_dict
when: file_info.stat.exists
- name: Print all available consoles
ansible.builtin.debug:
msg:
"{{ cmd_dict.stdout |
regex_findall('console=(\\w+)', '\\1') }}"
when: file_info.stat.exists
Docs: - Ansible register - Debug Modul - Regex_Search Modul