Variablenwerte in Kleinbuchstaben in einer Puppenvorlage

7

In meiner Puppenkonfiguration muss ich einen Variablenwert in Kleinbuchstaben schreiben, bevor ich ihn in einer Vorlage verwenden kann. Wie erreicht man das? Gibt es eine Möglichkeit, einen variablen Wert im Puppenmanifest in Kleinbuchstaben zu schreiben? Muss ich dies in der Vorlage tun?

Und allgemeiner: Wo sind String-Manipulationsfunktionen, die ich in Manifesten verwenden könnte?

Muss ich meine eigenen Ruby-Funktionen schreiben, um dies zu erreichen?

paweloque
quelle

Antworten:

13

Die Möglichkeiten von Puppet zur Manipulation von Saiten in Manifesten sind sehr begrenzt. Manifeste sind eigentlich nicht für solche Dinge gedacht.

In der Vorlage ist dies jedoch einfach. normale rubinfunktionen sind verfügbar. Angenommen, ich wollte einen Kleinbuchstaben osfamily:

<%= osfamily.downcase %>
Shane Madden
quelle
16

Ich kann mir zwei allgemeine Lösungen für dieses Problem vorstellen. Im Allgemeinen meine ich, dass sie in Manifestdateien und Vorlagen anstatt nur in Vorlagen funktionieren.

Die von mir empfohlene Lösung besteht darin, die downcase()Parser-Funktion im Standardbibliotheksmodul zu verwenden . Ich empfehle dies, weil Sie keinen Ruby-Code schreiben müssen und es einfacher zu lesen ist:

class helloworld {
  $os_downcase = downcase($osfamily)
}
include helloworld

Wenn Sie nicht vom stdlibModul abhängig sein möchten, können Sie die inline_templateFunktion verwenden, um die von Shane erwähnte Lösung zu verallgemeinern:

class helloworld {
  $os_downcase = inline_template('<%= osfamily.downcase %>')
}
include helloworld

inline_templatevermeidet die Notwendigkeit, eine separate *.erbDatei zu erstellen .

Hoffe das hilft. -Jeff

Jeff McCune
quelle