我正在努力将事情纳入角色和个人资料,并且遇到了问题。我正在使用木偶申请所有这一切,因为我用它来完成我的木偶大师的设置。如果我在site.pp中定义我的节点,如下所示:
[root@puppet puppetdbsetup]# cat manifests/site.pp
node 'puppet' {
include ::roles::puppetmaster
}
我收到此错误:
[root@puppet puppetdbsetup]# puppet apply manifests/site.pp --environmentpath /etc/puppet/environments --environment puppetdbsetup --noop
Notice: Compiled catalog for puppet.belkin in environment puppetdbsetup in 1.29 seconds
Error: Could not find dependency Class[Puppet::Install] for File[/etc/puppet/hiera.yaml] at /etc/puppet/environments/puppetdbsetup/modules/p
uppet/manifests/master.pp:31
如果我用puppet直接运行puppetmaster.pp(如下所示),它不会抛出同样的错误。
[root@puppet puppetdbsetup]# cat modules/roles/manifests/puppetmaster.pp
class roles::puppetmaster {
#include profiles::base
include profiles::puppet::master
}
任何人都可以告诉我为什么会这样,以及如何解决它?作为旁注,这里引用的所有三个模块都是手写的......没有一个是Forge模块。
更新1 这是我的puppet :: install class:
[root@puppet puppetdbsetup]# cat modules/puppet/manifests/install.pp
class puppet::install {
package { 'puppet':
ensure => present,
}
}
答案 0 :(得分:1)
在您的清单中的某个位置,您声明的File[/etc/puppet/hiera.yaml]
取决于Class[Puppet::Install]
,例如
file { '/etc/puppet/hiera.yaml': require => Class['puppet::install'] }
左右
Class['puppet::install'] -> file { '/etc/puppet/hiera.yaml': ... }
或那种情况。
你缺少的是通过
实际宣布课程include puppet::install # nice!
或
class { 'puppet::install': } # please don't
如果有疑问,请在file
声明附近添加包含行。通常可以安全地多次包括一个班级。
答案 1 :(得分:0)
如果您直接应用puppetmaster.pp,那么您只是定义了不应用它的类。
您需要puppet apply -e 'include ::roles::puppetmaster'
才能比较。
另一个错误可能是由于modules / puppet / manifests / install.pp不存在,或者文件中的类定义没有以
开头class puppet::install (
....
....
) {