我是傀儡的新手,我不能用.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",
}
}
但没有任何改变。
提前谢谢
答案 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::motd
或class { 'helloworld::motd': }
,则会从helloworld
调用该清单,您将获得所需的行为。