如何在木偶中安装centos包?

时间:2016-05-04 12:58:26

标签: centos vagrant puppet

我在site.pp中设置了一个类

class packages {
    Package { ensure => 'installed' }
    package { 'python-devel': }
    package { 'blas-devel': }
    package { 'lapack-devel': }
}

但似乎没有发生任何事情? 我跑的时候

pip install scipy

我仍然认为Python.h无法编译所以我认为它不是python devel没有安装

2 个答案:

答案 0 :(得分:1)

您已定义了类“packages”,但未显示该类已分配给任何节点。这就像写一个函数但从不调用它。

您需要声明该类以将其分配给特定节点或所有节点(取决于声明的上下文)。有几种不同的形式,但你可以做的最简单的事情就是添加......

include 'packages'

...在你的类定义的右大括号之后的行上。

结果仍然是相当差的形式,因为类应该在模块中定义,而不是在site.pp中定义,并且声明很少应该出现在顶部作用域(在任何节点块,类定义或类型定义之外) ,但它会指示Puppet在运行时,应确保安装指定的软件包。

答案 1 :(得分:1)

实际上,您为模块编写代码的方式看起来并不正确。我会尝试更像下面的内容

class 'my-python' {
  package {'python-devel':
     ensure => installed,
  }
  package {'lapack-devel':
     ensure => installed,
  }
  package {'python-devel':
     ensure => installed,
  }
}

您将类中的每个包定义为单独的包资源。然后,您需要在site.pp中为要安装它们的节点“包含mypython”。跑木偶,你应该很好。