Ich muss eine einzige Datei mit dem Inhalt einer einzelnen Tatsache in Ansible erstellen. Ich mache gerade so etwas:
%Vor%Meine Vorlagendatei sieht folgendermaßen aus:
%Vor%Offensichtlich wäre es viel sinnvoller, einfach so etwas zu tun:
%Vor%Puppet bietet etwas ähnliches. Gibt es eine Möglichkeit, dies in Ansible zu tun?
Eine weitere Option für das Modul lineinfile (wie von udondan antwort ) wäre die Kopieren Sie und geben Sie den Inhalt anstelle einer lokalen Quelle für den Ansible-Host an.
Eine Beispielaufgabe würde etwa so aussehen:
%Vor% Ich persönlich bevorzuge das mit lineinfile
wie für mich lineinfile
sollte für geringfügige Änderungen an Dateien sein, die bereits dort sind, wo copy
dafür sorgt, dass eine Datei an einem Ort ist und genau so aussieht, wie du es willst es zu. Es hat auch den Vorteil, mit mehreren Linien fertig zu werden.
In der Realität wäre ich jedoch versucht, dies zu einer Vorlageaufgabe zu machen und hätte einfach die Vorlagedatei:
%Vor%Was durch diese Aufgabe erzeugt wird:
%Vor%Es ist sauberer und es verwendet Module für genau das, wofür sie bestimmt sind.
Ja, in diesem einfachen Fall ist dies mit dem Modul lineinfile
möglich.
Das Modul lineinfile
wird normalerweise verwendet, um sicherzustellen, dass eine bestimmte Zeile in einer Datei enthalten ist. Die Option create=yes
wird die Datei erstellen, wenn sie nicht existiert. Die Option regexp=.*
stellt sicher, dass Sie der Datei keinen Inhalt hinzufügen, wenn git_commit
sich ändert, da sie standardmäßig sicherstellen würde, dass der neue Inhalt der Datei hinzugefügt wird und den vorherigen Inhalt nicht ersetzt.
Dies funktioniert nur, weil Sie nur eine Zeile in Ihrer Datei haben. Wenn du mehr Zeilen gehabt hättest, würde das offensichtlich nicht mit diesem Modul funktionieren.
Tags und Links ansible