2012-03-28 4 views
4

Ich versuche, eine neue Funktion für die Puppe zu schreiben, die eine Puppe Quellenpfad als Argument nehmen würden, wie zum Beispiel:Map Puppe Weg zum absoluten Pfad

puppet:///modules/foo/some/dir 

Die Funktion muss dann dieses Verzeichnis analysieren, so ich brauche den absoluten Pfad zu dem Verzeichnis, um herauszufinden, die von der Umgebung abhängig, zum Beispiel:

/srv/puppetmaster/stable/modules/foo/files/some/dir 

welche Funktion kann ich dies zu erreichen, verwenden?

+0

Ich bin völlig überfordert mit dieser, aber [dieser Thread] (http://projects.puppetlabs.com/issues/4885) könnte hilfreich sein. Viel Glück! – MrGomez

Antwort

1

Nicht sicher, ob es eine interne Methode/Funktion dafür gibt, aber es kann immer noch ein paar Wege geben, dies zu erreichen.

  1. Überprüfen Sie ENV für alle Marionettenkonfigurationen.

  2. Machen Sie ein System() Anruf von Ihrem Skript - Puppe können Konfigurationswerte für den Modulpfad auskippen:

    $ puppet master --configprint modulepath 
    $ puppet agent --configprint modulepath 
    
0

Aus persual der Puppe Quelle, ich den Eindruck bekommen, dass Wenn es möglich wäre, würde es Änderungen am Puppen-Quellcode erfordern und es wäre hässlich.

Also meine Antwort ist, versuchen Sie vielleicht, das falsche Problem zu lösen?

Wenn Sie einen Dateiserverpfad in einen masterlokalen Dateipfad konvertieren möchten, schlägt dies vor, dass Sie eine Funktion schreiben möchten, die Daten auf dem Server verwendet, die normalerweise nur auf dem Client benötigt werden. Warum willst du das machen? Haben Sie Dateien, die sowohl vom Master als auch von den Clients benötigt werden? (Das klingt unwahrscheinlich) Muss diese URL tatsächlich in einen lokalen Dateipfad konvertiert werden?