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