Wie erwähnt Platzhalter in ansible Befehle
Ich bin ausführen von shell-Kommandos über Ansible.
Manchmal habe ich nicht die komplette Ordnername. Angenommen ich habe dirname solr4.7.0
.
In der shell kann ich geben cd solr*
.
Aber in ansible ich kann das nicht tun:
chdir=/var/solr*
Gibt es Abhilfe?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht. Die
chdir=
parameter, z.B. diecommand
Modul unterstützt keine wildcards.Könnten Sie erreichen, was Sie wollen mit einer register variable zum speichern der Ausgabe des
ls
Befehl:Aber das ist, ehrlich gesagt, eine hässliche Lösung. Du bist besser dran, nur mit dem tatsächlichen Verzeichnis-Namen. Wenn es unterscheidet sich auf den verschiedenen hosts, die Sie verwenden können host-Variablen, um es angemessen.
Als Larsks schrieb der Schlüssel ist die Verwendung
register
, aber der code funktioniert nicht auf meiner aktuellen ansible version. Hier ist also korrigiert man:Es ist eine Art hacky, aber ich habe festgestellt, dass wenn man die Befehle, verwenden Sie einen Platzhalter in ein script und verwenden Sie dann den ansible 'script' - Befehl, um das Skript auszuführen, werden die Platzhalter sind in Ordnung.
HTML: