2016-07-01 7 views
0

Ich habe eine sehr einfache Verwendung für puppet; Ich erstelle und lösche Studenten von einem Testserver. Ich möchte einige Konfigurationsvariablen in einer anderen Datei speichern und dann einfach eine einfache: am Anfang meiner Manifest-Datei. Gibt es einen einfachen Weg, dies zu tun? Ich habe konsultiert:Wie schließe ich eine Datei mit einem Marionettenmanifest ein?

https://docs.puppet.com/puppet/latest/reference/lang_classes.html#using-include https://puppet.com/blog/problem-separating-data-from-puppet-code

Keiner von denen eine einfache Lösung geben. Wenn ich nur die obigen Lösungen verwenden kann, werde ich es einfach in meinem Manifest fest codieren.

+0

Dies ist ein guter Anwendungsfall für externe Fakten: https://docs.puppet.com/facter/3.1/custom_facts.html#external-facts. Ich empfehle eine Yaml-Datei mit Schlüssel-Wert-Paaren für Ihr spezifisches Szenario. Ich kann dies eine vollständige Antwort mit einigen mehr Informationen von Ihnen machen. –

+0

Welche Version von Puppet verwenden Sie? Verwenden Sie "Marionette anwenden" oder "Marionetten-Agent"? –

+0

@JohnBollinger: Ich benutze 3.4. * (Ich vergesse welche Patch-Version). Ja, ich benutze 'puppet apply'. – Avery

Antwort

1

Puppet 3 hat eine import Anweisung, die Ihren Zweck erfüllen sollte. Es ist veraltet (und entfernt von Puppet 4), aber es wird für Sie in Puppet 3 den Job:


variables.pp

# top-scope variables: 
$var1 = 'foo' 
$var2 = 'bar' 

main.pp

import 'variables.pp' 

# demo 
notify { "var1 = ${var1}; var2 = ${var2}": } 

Beachten Sie, dass Puppets import führt keine Text-Interpolation durch; es ist mehr wie Pythons import, die vollständige Deklarationen von einem anderen Manifest macht, das im importierenden Manifest sichtbar ist.