Ansible Notizen und Code-Stücke, die ich immer wieder brauche & vergesse.

Ansible-Vault

Mit dem Tool können Passwörter verschlüsselt im Verzeichnis-Baum des Ansible-Playbooks bzw. des Ansible-Inventories liegen.

Allerdings hat die Ansible-Yaml-Loading-Engine hat einen Detector, dass alles was nach Vault aussieht, on-the-lfy decrypted wird - falls es den Key hat. Danach sieht das Ansible nur noch den Klar-Text-YAML-Content (ohne irgendein Crypto)

Sofern man in seiner ansible.cfg die Option

1log_path=~/log/ansible.log

gesetzt hat, landen diese Klartext-Informationen sogar im Logfile - unschön.

Um das zu vermeiden, kann die Option no_log: true gesetzt werden.

1    - debug:
2        msg: "Geheim {{ansible_host}} "
3      no_log: true

Danach sieht der Output nur noch folgendermaßen aus:

PLAY RECAP *****************************************************************************************************************************************************
meinServerName              : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Alternativ kann das Passwort auch während des Playbook-Laufs interaktiv angefragt werden.

1  vars_prompt:
2    - name: api_key
3      prompt: Enter the API key
4  tasks:
5    - name: Ensure API key is present in config file
6      ansible.builtin.lineinfile:
7        path: /etc/app/configuration.ini
8        line: "API_KEY={{ api_key }}"

Überhaupt ist die interaktive Variante eine coole Sache, um z.B. abzufragen, ob gewisse Dinge in Playbooks passieren sollen (z.B. Restart j/n von $DINGEN nach Updates)

Mehr Doku wie z.B: die Einbindung von Passwort-Managern hier: https://www.redhat.com/sysadmin/ansible-playbooks-secrets