In Ansible 1.9 gibt es einen neuen Filter: to_uuid, der eine Zeichenfolge gibt, die eine ansible domänenspezifische UUID zurückgibt. Sie finden die Verwendung hier: Ссылка
Wie von Xingxing Gao erwähnt, gibt es to_uuid
, das mit einer ausreichend großen Zahl verwendet werden kann, und den random
Filter, um eine zufällige UUID zu erzeugen. Je größer die Zahl, desto größer die Zufälligkeit. zB:
oder
%Vor% Das ist sehr nah. Ich musste nur ein paar Dinge ändern. Ich habe das herausgefunden, indem ich die Aufgabe " debug: var=uuid_list
" benutzt und iteriert habe.
Anmerkungen:
echo
hat zum Ausdruck der Zeichenfolge uuidgen
geführt. entfernt echo
, behalten uuidgen
. item.item.stdout
muss item.stdout
sein
uuid_list.stdout
muss uuid_list.results
sein
Eine Lösung, die immun gegen Caching / veraltete Faktenerfassung sein sollte und Ihnen bei jeder Verwendung eine relativ zufällige UUID gibt, ist:
{{ 999999999999999999999 | random | string + (lookup('pipe', 'date +%s%N')) | to_uuid() }}
Es verkettet eine Zufallszahl zwischen 0 und 999999999999999999999 mit den aktuellen Nanosekunden seit Unix-Epoche und speist diese durch den Filter von anisible to_uuid () (verfügbar seit Version 1.9). Das Fakt-Caching sollte kein Problem verursachen, da Nachschlagevorgänge immer bei jedem Aufruf ausgewertet werden.
Wenn Sie möchten, dass eine UUID während der Wiedergaben in einem Playbook konstant bleibt (aber nicht zwischen mehreren Aufrufen des Playbooks bleibt - selbst wenn das Fakt-Caching aktiviert ist), verwenden Sie:
set_fact: uuid={{ 999999999999999999999 | random | string + (lookup('pipe', 'date +%s%N')) | to_uuid() }}
Wenn Sie Willems Lösung verwenden, beachten Sie, dass Jinja und Ansible das Ergebnis für mehrere Ausführungen desselben Filters zwischenspeichern. Daher müssen Sie die Quellennummer jedes Mal ändern
%Vor%und für Situationen, in denen Sie eine normale md5 anstelle von to_uuid benötigen, nimmt Hash ('md5') keine ganze Zahl. Der einfachste Weg, um den Zufall in eine Zeichenfolge zu konvertieren, die ich gefunden habe, ist to_uuid:
%Vor%Tags und Links ansible