Ich musste mal Ansible Zweck entfremden: Auslesen von Log Dateien und Anzeige nur bestimmter Einträge.
---
- hosts: hal52b
gather_facts: no
vars:
nummer: [
" 500",
" 404"
]
tasks:
- name: Suche Error in Access LOG
shell:
chdir: /var/log/apache2
cmd: "grep -ari -e '^halsec.de' other_vhosts_access.log | cat"
changed_when: false
ignore_errors: true
become: true
register: grep_cmd
- debug:
msg: "{{item| regex_findall('\\s\\d{3,5}')}} gefunden"
when: "item| regex_findall('\\s\\d{3,5}')|intersect(nummer)|length != 0"
loop: "{{ grep_cmd.stdout_lines }}"
Beim Aufruf des Playbooks lese ich eine Apache Log Datei aus. Mit grep findet die erste grobe Selektion statt. In dem Debug Loop nehmen wir uns Zeile für Zeile und vergleichen 3-5 stellige gefundene Errorcodes mit einer definierten Liste. Kommt der Errorcode in der Liste vor, wird er „OK“ – alle nicht vorkommenden Errorcode werden „skipped“ ausgegeben.
Die Ausgabe kann über Konfiguration der ansible.cfg beeinflusst werden. Bei langen Debug Ausgaben kann es sinnvoll sein, „skipped“ Nachrichten auszublenden. Auch farblich kann die Ausgabe angepasst werden.
[defaults]
display_skipped_hosts = yes
[colors]
ok = purple
skip = dark gray
„display_skipped_hosts = no“ unterdrückt alle skipped Nachrichten. Da kann/muss mit gespielt werden. Viel Spaß!
Du muss angemeldet sein, um einen Kommentar zu veröffentlichen.