Puppet:安装包问题

Puppet:安装包问题

我想安装 splunkforwarder,但现有的模块都无法正常工作。因此,我决定从头开始编写它,但有趣的是,我只好安装软件包了。

因此,我在 Puppet Master 服务器上创建了一个存储库。该存储库可以正常工作。如果我在客户端上执行 yum install,我就可以安装 splunkforwarder,并且它会在 /opt 下正确安装。因此,对我来说,存储库不是问题。

所以,我只想要最基本的、不需要配置的安装。

class splunk2 {
         package { "splunkforwarder": ensure => "installed" }
}

这不起作用。没有日志,客户端也没有抛出错误——也没有提到安装它。

只有两个文件;init.pp 和 up.pp

init.pp 仅包含;

class splunk2 {
}

仍然是同样的问题。我就是想不出哪里出了问题,因为如果我只想安装包的话,这似乎应该是非常简单的。

有任何想法吗 :(?

编辑:我确实将 lololdolaol 放入了 up.pp,而 puppet 没有抱怨。这几乎就像它忽略了这个模块。

答案1

是的,Puppet 忽略了该模块,因为它的结构不符合 Puppetmaster 的类自动加载器所接受的方式。

从头开始,你的模块放在哪里?可能在/etc/puppet/modules。因此,在那里你有以下目录和文件结构:

<modulename>/files/
<modulename>/templates/
<modulename>/manifests/
<modulename>/manifests/init.pp

模块结构中还有其他几个目录,但这三个是迄今为止最常用和最重要的目录。filestemplates目录是可选的,而manifests目录是必需的,如果您的模块包含类或更一般的清单。您将类放在那里。在大多数情况下,文件init.pp也是必需的。

您的模块目录和文件现在如下所示:

splunkforwarder/files/
splunkforwarder/templates/
splunkforwarder/manifests/
splunkforwarder/manifests/init.pp

你的init.pp可以包含所有的魔法:

class splunkforwarder {

  package { 'splunkforwarder':
    ensure => 'installed',
  }

}

您已定义一个类“splunkforwarder”,用于管理同名的单个包。您现在可以执行

include 'splunkforwarder'

在您的节点配置中,splunkforwarder 包应该在下次运行 Puppet 时安装。

相关内容