in Ansible, Wie kann ich log-Datei name dynamilcally
Ich bin derzeit an der Entwicklung ansible-Skript zum erstellen und bereitstellen von java-Projekt.
so, ich kann die log_path wie unten
log_path=/var/log/ansible.log
aber, Es ist schwer, oben zu schauen build-Verlauf.
Ist es möglich, Anhängen datetime in log-Datei-Namen?
beispielsweise
ansible.20150326145515.melden Sie
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, dass es eine integrierte Methode zum generieren des date-on-the-fly, aber eine option, die Sie haben, ist die Verwendung einer lookup können shell-out to date. Beispiel:
date +%Y%m%d%H%M%S
Beachten Sie die Kleinbuchstaben %m für den Monat.log_path
nichtig; nie auch nur den Versuch zum ausführen der Suche.ansible-log.{{ lookup('pipe', 'date +%Y%m%d%H%M%S') }}.log
anstatt etwas nützliches tut. Setzen Sie Anführungszeichen um den gesamten Pfad macht ansible Anhängenpwd
zu.Hier ist eine option, mit
ANSIBLE_LOG_PATH
environment-Variablen durch die shell Bash-alias:Fühlen sich frei, verwenden Sie einen absoluten Pfad an, wenn Sie bevorzugen.
export ANSIBLE_LOG_PATH=...
.Habe ich es gefunden.
fügen Sie einfach eine Aufgabe zu kopieren(oder mv-Befehl) melden Sie sich lokal
Dank @jarv
+
Zeichen von @jarv Antwort.Laut dem netten Herren an der #ansible freenode-IRC, wie dies erreicht werden kann mit einem benutzerdefinierte callback-plugin.
Ich es noch nicht gemacht haben, denn ich kann nicht installieren Sie das Ansible-Python-Bibliothek, die auf dieser Maschine. Speziell, Windows 7 kann keine Verzeichnis-Namen > 260 chars in der Länge, und
pip
zu machen versucht langen temporären Pfade. Aber wenn jemand kommt, es, poste es bitte hier.Wie wäre es damit:
Ausgabe:
date
Befehl mit Ansible.Kleine Verbesserung @ickhyun-kwon Antwort:
Dieser hat eine separate log-Verzeichnisse pro svn-release, sorgt für das log-Verzeichnis tatsächlich vorhanden ist, bevor der mv-Befehl.
Ansible interpretiert
./
wie das aktuelle playbook-Verzeichnis, die kann oder kann nicht die Wurzel Ihrer ansible-repository, wobei mir Leben in./playbooks/$project/$role.yml
. Für mich{{ inventory_dir }}/logs/
passiert, zu entsprechen, auf die~/ansible/log/
Verzeichnis, obwohl alternative layout-Konfigurationen nicht garantieren.Bin ich unsicher der richtige Weg, um formal extrahieren Sie die absolute ansible.cfg::log_path variable
Auch der Befehl "date" für den Monat ist
+%m
und nicht%M
die Minute