Ist es möglich, Inline-Vorlagen zu verwenden?

8

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?

    
Naftuli Kay 17.11.2015, 22:57
quelle

3 Antworten

8

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.

    
ydaetskcoR 18.11.2015, 15:02
quelle
4

Ja, in diesem einfachen Fall ist dies mit dem Modul lineinfile möglich.

%Vor%

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.

    
udondan 18.11.2015 02:34
quelle
0

Dieses Problem scheint gelöst zu sein. Wenn die Vorlagendatei jedoch mehr als eine Variable, d. H. Eine JSON-Datei, war, ist es möglich, das Kopiermodul mit dem Inhaltsparameter mit einer Suche zu verwenden, d.h.:

%Vor%     
kbiernat 12.02.2018 10:15
quelle

Tags und Links