2016-05-17 8 views
1

Ich bin neu zu Puppe und ich kann nicht anwenden .pp, um das Wort zu ändern.Wie man eine .pp auf einen Knoten anwendet

Ich habe unter /etc/Puppet Labs/code/modules/helloworld/

init.pp

class helloworld { 
    notify { 'hello, world!': } 
} 

node 'kp2.keepy-i.com'{ 
    include helloworld 
} 

motd.pp

class helloworld::motd { 
    file { '/etc/motd': 
    owner => 'root', 
    group => 'root', 
    mode => '0644', 
    content => "hello, world!\n", 
    } 
} 

manifestiert Wenn ich Puppe ausführen Agent -t - Verbose

Info: Using configured environment 'production' 
Info: Retrieving pluginfacts 
Info: Retrieving plugin 
Info: Caching catalog for kp2.keepy-i.com 
Info: Applying configuration version '1463497694' 
Notice: Applied catalog in 0.04 seconds 

aber nichts ändern.

Vielen Dank im Voraus

Antwort

1

/etc/puppetlabs/code/modules ein Pfad Basismodul ist. Sie sollten Module, die Sie durch Deklaration aufrufen, nicht dort einfügen. Sie sollten Module, auf die Sie verweisen (z. B. stdlib), dort einfügen. Dieses Modul gehört in /etc/puppetlabs/code/environments/'environment'/modules/. Ich empfehle, Dokumentation über Verzeichnisumgebungen zu lesen.

Genauer gesagt, kompilieren Sie einen Katalog für die Standardumgebung 'Produktion'. Das dafür verwendete Standardmanifest wäre /etc/puppetlabs/code/environments/production/manifests/site.pp. Ihre Knotendefinitionen gehören dorthin. Die include helloworld in der Knotendefinition wird das Modul unter /etc/puppetlabs/code/environments/environment/modules/helloworld/init.pp aufrufen, das den Klassennamen helloworld haben sollte, damit es automatisch geladen wird. Wenn Ihr init.pp einen oder class { 'helloworld::motd': } enthält, wird dieses Manifest von helloworld aufgerufen und Sie werden das gewünschte Verhalten haben.