Puppet Apply:找不到类

时间:2014-05-19 20:19:20

标签: puppet configuration-management

看起来非常简单,它适用于Vagrant,但我不能在EC2服务器上运行。

当:

 puppet apply manifests/init.pp

错误:

 Could not find class base for s1.ec2.internal at /var/lib/jenkins/jobs/s1/workspace/manifests/init.pp:1 on node s1.ec2.internal

档案./manifests/init.pp:

include base

档案./manifests/base.pp:

class base {

  exec { "apt-get update":
    command => "/usr/bin/apt-get update",
    timeout => 0
  }

  package { ["vim", "git", "build-essential"]:
    ensure  => present,
    require => Exec["apt-get update"]
  }

}

Puppet v2.7.23

3 个答案:

答案 0 :(得分:4)

就像菲利克斯所说,在你的木偶清单的模块中正在寻找班级基础。模块的目录结构如下:

$confdir/
|- manifests
   |- init.pp <- The file you reference to when executing puppet apply
|- modules
   |- base
      |- manifests
         |- init.pp <- The file containing your base class

Felix忘记提到的是base模块目录中需要另一个清单目录。

另见https://docs.puppetlabs.com/puppet/latest/reference/modules_fundamentals.html

答案 1 :(得分:1)

通常只会在名为base的模块中找到类base

尝试将其放入modules/base/init.pp而不是manifests/base.pp

答案 2 :(得分:0)

在我的情况下,这是一个权限问题 - 文件归root用户所有,但我并没有使用sudo

运行木偶