2017-04-14 4 views
3

Wenn ich möchte eine Datei in ein bestimmtes Verzeichnis mit Puppet hinzufügen kann ich verwenden:Marionette: Datei für alle Benutzer hinzufügen?

file { "/folder/file_name": 
    ensure => present, 
    source => [puppet///file_name], 
} 

Gibt es eine Möglichkeit ich eine Datei des Benutzers zu jedem Home-Verzeichnis hinzufügen kann?

Etwas wie:

file { "/home/$USER/filename": 
    ensure => present, 
    source => [puppet///filename], 
} 
+0

Ja, aber Sie müssen entscheiden, ob die Benutzer auf diesem Server zum Zeitpunkt der bekannt oder unbekannt sein sollte Konfigurationsanwendung. Welches wird es sein? –

+0

@MattSchuchard meinst du, ob ich weiß, wie der Benutzername sein wird? Wenn dem so ist, werde ich den Namen nicht im Voraus wissen. –

Antwort

2

Solange dies ist * nichts, dann können Sie eine benutzerdefinierte Tatsache, fügen Sie die Home-Verzeichnisse auf einem System zusammenzustellen. Ich schlage vor, es homedirs.rb zu nennen, wenn Sie es innerhalb des lib/facter/ Verzeichnisses des Moduls erstellen.

# collect home directories 
Facter.add(:homedirs) do 
    setcode do 
    # grab home directories on system and convert into array 
    `ls /home`.split("\n") 
    end 
end 

Wenn Sie dies für alle Nicht-Windows können Sie eine hinzu:

unless Facter.value(:kernel) == 'Windows' 

um den Code-Block, oder es bleiben nur noch Linux mit:

confine kernel: linux 

über die setcode.

Anschließend können Sie ein Lambda verwenden, um dieses Faktarray zu durchlaufen und die Dateiressource anzuwenden.

# iterate through homedirs in fact array 
$facts['homedirs'].each |$homedir| { 
    # copy file to home directory 
    file { "/home/$homedir/filename": 
    ensure => file, 
    source => puppet:///filename, 
    } 
} 

ich auch dort ein paar Probleme mit Ihrer file Ressource festgelegt werden.

Einige hilfreiche doc Links Bei jedem dieser ist verwirrend:

https://docs.puppet.com/puppet/latest/type.html#file https://docs.puppet.com/facter/3.6/custom_facts.html#adding-custom-facts-to-facter https://docs.puppet.com/puppet/4.9/function.html#each

Verwandte Themen