Puppet找不到依赖类

时间:2014-08-04 01:33:12

标签: puppet configuration-management

我正在努力将事情纳入角色和个人资料,并且遇到了问题。我正在使用木偶申请所有这一切,因为我用它来完成我的木偶大师的设置。如果我在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,
  }
}

2 个答案:

答案 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 (
    ....
    ....
) {