傀儡找不到类angular色:: webserver

我试图让类在puppet中工作,但是当我在节点上尝试puppet agent时,它给了我一个错误:

root @ webserver01:/ etc#puppet agent -t

信息:正在检索插件错误:无法从远程服务器检索目录:SERVER上的错误400:无法find类angular色:: 本地节点上的本地 主机上的webserver服务器本地 主机警告:在失败的目录上不使用caching错误:无法检索目录; 跳过跑步

注意:我编辑了上面的localhost部分。 我有以下site.pp:

root@puppet:/etc/puppet/manifests# cat site.pp node 'default' { } node 'webserver01' { include roles::webserver file {'/etc/test': ensure => file, owner => 'root', group => 'root', mode => '0644', content => 'df', } } 

模块path:

 root@puppet:/etc/puppet/manifests# puppet config print modulepath Warning: Setting templatedir is deprecated. See http://links.puppetlabs.com/env-settings-deprecations (at /usr/lib/ruby/vendor_ruby/puppet/settings.rb:1139:in `issue_deprecation_warning') /etc/puppet/modules:/usr/share/puppet/modules 

模块目录:

 root@puppet:/etc/puppet/modules# tree --charset=ASCII . |-- roles | `-- webserver | |-- files | |-- manifests | | `-- init.pp | `-- templates 

和web服务器类:

 root@puppet:/etc/puppet/modules/webserver/manifests# cat init.pp class webserver { package { apache2: ensure => present, } notify {"in webserver class": } file {'/etc/test2': ensure => file, owner => 'root', group => 'root', mode => '0644', content => 'df', } } 

它工作正常,如果我有/ etc / puppet / modules / webserver(删除angular色部分)的模块,但它仍然失败,当我尝试与angular色目录。 如果我将init.pp重命名为webserver.pp,它仍然失败。 有人可以帮忙吗?

对于roles::webserverroles是它将查看的模块的名称 – 需要在manifests目录所在的位置。 你的目录结构使得webserver成为模块,它不会工作,因为它实际上不在模块目录中。 为了导入, roles::webserver类应该在下面的任一个中:

 /etc/puppet/modules/roles/manifests/webserver.pp 

要么

 /etc/puppet/modules/roles/manifests/webserver/init.pp