看起来非常简单,它适用于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
答案 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