Ansible Kurs


Inhalt


Willkommen

Einstieg

Struktur & Rollen

Templates

Arbeiten mit Containern

Erweiterte Übung

Conditionals

Register

Ansible-Vault

Light Mode

Conditionals

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"

Register

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