Sie müssen feststellen, ob Ihr Befehl von einem CI ausgeführt wird oder nicht. Wenn Sie Zugang zu haben, was Befehl ausgeführt werden soll, dann würde ich vorschlagen, einfach einige zusätzliche Variablen zum Befehl hinzufügen, zum Beispiel
ansible-playbook -i inv.yml --extra-vars "ci=True" playbook.yml
und dann können Sie die ci
Variable in Ihrem Textbuch beziehen, um zu bestimmen, was zu tun ist.
Wenn dies umständlich ist, ist es das Beste, sich auf die Umgebungsvariablen zu verlassen, die von den meisten CI-Servern festgelegt werden. Sie sollten in der Dokumentation Ihres CI-Servers nachsehen, ob sie irgendwelche Umgebungsvariablen setzt und wenn ja, was sie tun. Die meisten (aber nicht alle) setzen die Variable CI
auf true
. Im schlimmsten Fall sollten Sie diese Variable manuell in der Konfiguration Ihres CI-Servers angeben.
Sie sollten in der Lage sein, die Umgebungsvariablen des Management-Host-Rechner für den Zugriff mit:
{{ lookup('env','CI') }}
Natürlich für diese Optionen arbeiten Sie müssen sicherstellen, dass die Umgebungsvariable richtig auf nicht-interaktiven gesetzt Shells (die das CI für Sie tun sollte), und nicht auf interaktive gesetzt.
'{{lookup ('env', 'CI')}}'? –