我在site.pp中设置了一个类
class packages {
Package { ensure => 'installed' }
package { 'python-devel': }
package { 'blas-devel': }
package { 'lapack-devel': }
}
但似乎没有发生任何事情? 我跑的时候
pip install scipy
我仍然认为Python.h
无法编译所以我认为它不是python devel没有安装
答案 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”。跑木偶,你应该很好。