Ich versuche, zwei verschiedene Dateien mit einer Vorlage zu erstellen, da sie sich nur um eine Zeile unterscheiden.
file
{
"/tmp/bootstrap-raid.sh":
content => template("pxe/bootstrap.sh.erb"),
}
file
{
"/tmp/bootstrap-noraid.sh":
content => template("pxe/bootstrap.sh.erb"),
}
bootstrap.sh.erb:
<% if ??? == "???" %>
-r yes \
<% else %>
-r no \
<% end %>
Ich kann eine Variable nicht übergeben, indem $raid=yes file{} $raid=no file{}
ich sie zweimal so definiere, also habe ich versucht, die Variable in jeder Variablen file{}
ohne Aufwand zu definieren . dann habe ich darüber nachgedacht, den zieldateinamen in der vorlage zu verwenden, wie <% if filename == "/tmp/bootstrap-raid.sh" %>
es auch nicht möglich ist.
Funktionsweise Rufen Sie eine Vorlage zweimal mit verschiedenen "Parametern" auf.
Mein Ziel ist es, keine zusätzliche Funktion in der Manifestdatei zu definieren und aufzurufen oder zwei Vorlagen zu erstellen. irgendwelche Ideen?
Gibt es vordefinierte Standardvariablen in einer Vorlage wie den Dateinamen der Zieldatei, den Vorlagennamen, ...?
edit: ein anderes Beispiel wären zwei php.ini-Dateien wie in debian, eine für die Kommandozeile und eine für den Webserver. Ich möchte nur das Speicherlimit austauschen. Jeder Server benötigt jedoch beide php.ini-Dateien. Ich suche nach einer Möglichkeit, einen fest codierten Parameter an die Vorlagendatei zu übergeben, oder nach einer Möglichkeit, die ich if/then/else
basierend auf dem Zieldateinamen verwenden kann. Natürlich weiß ich, dass ich eine neue Definition erstellen kann, die ich zweimal aufrufen kann. aber ich suche einen einfacheren Weg.
Vielleicht sollten Sie dies mit einer Definition tun?
dann nenne es mit
Ihre Vorlage muss mit der
israid
Variablen umgehen. Sie können einfach ein Include verwenden und die Logik aus der Vorlage heraushalten (oder zumindest weniger der darin enthaltenen Logik)quelle
template("templatename.erb",'myvar' => 12)
mir praktischer, als für jede Vorlage, die ich zweimal verwenden möchte, eine Definition hinzufügen zu müssen. Ich denke, es muss eine einfache Möglichkeit geben, auf den Zieldateinamen zuzugreifen oder eine Variable einfach zu übergeben.