如何将.pp应用于节点

时间:2016-05-17 15:18:54

标签: puppet

我是傀儡的新手,我不能用.pp来改变咒语。

我有 / etc / puppetlabs / code / modules / helloworld / manifests

init.pp

python-pptx

motd.pp

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

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

如果我执行 puppet agent -t --verbose

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

但没有任何改变。

提前谢谢

1 个答案:

答案 0 :(得分:1)

/etc/puppetlabs/code/modules是基本模块路径。你不应该在那里放置你通过声明调用的模块。你应该把你引用的模块(例如stdlib)放在那里。该模块属于/etc/puppetlabs/code/environments/'environment'/modules/。我建议阅读有关目录环境的文档。

更重要的是,您正在为默认环境“生产”编译目录。用于此的默认清单将在/etc/puppetlabs/code/environments/production/manifests/site.pp。您的节点定义属于那里。节点定义中的include helloworld将调用/etc/puppetlabs/code/environments/environment/modules/helloworld/init.pp处的模块,该模块的类名应为helloworld,因此它将自动加载。如果您的init.pp包含include helloworld::motdclass { 'helloworld::motd': },则会从helloworld调用该清单,您将获得所需的行为。