请帮助我配置来自github的自定义木偶模块。模块在主节点中被正确地拉出,但在代理节点上根本没有被识别。
Puppetfile
mod "puppet-lamp",
:git => "https://github.com/blablabla/puppet_lamp.git",
:ref => "659fe4056060426d3a1449sdfgbc290571f5714f"environment.conf
modulepath = modules:$basemodulepathr10k正确地从github中提取模块
.
└── production
├── environment.conf
├── modules
│ └── lamp
│ └── manifests
│ ├── apache.pp
│ └── test.pp
└── Puppetfile
4 directories, 4 filesapache.pp
class apache {
package { 'httpd':
ensure => installed,
}
service { 'httpd':
enable => true,
ensure => 'running'
}
}site.pp
include apache但是当我运行代理时,什么都不会被应用!
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Applying configuration version '1549348460'
Notice: Applied catalog in 0.01 seconds尝试使用节点定义,没有改变.
node 'default' {
include 'apache'
}在这里使用最新的木偶
[root@puppetmaster environments]# puppetserver --version
puppetserver version: 6.2.0
[root@node01 ~]# puppet -V
6.2.0有人能告诉我我做错了什么吗?提前感谢!
发布于 2019-02-05 12:11:09
您的类名必须与模块名匹配,才能遵守自动加载限制。在您的例子中,您已经命名了模块lamp,并命名了类apache。这里更简单的方法是重命名类lamp,因为根据您的问题,它在任何地方都被引用为lamp。
另一个自动加载限制是类名必须与模块名称和清单名称匹配。在本例中,您的清单名为apache.pp,这意味着类在定义和声明中都必须是lamp::apache。这里更简单的方法是将清单从apache.pp重命名为init.pp,以便类名只需匹配模块名即可。
考虑到自动加载的这两个名称空间问题,最容易让您工作的两个步骤是:
apache的定义和引用重命名为lamp (例如class lamp和include lamp)。apache.pp清单重命名为init.pp。有关更多信息,您可以参考傀儡文献获取正在使用的木偶版本。
https://stackoverflow.com/questions/54529221
复制相似问题