如何在puppet中安装centos软件包?
我在我的site.pp中设置了一个类如何在puppet中安装centos软件包?,centos,vagrant,puppet,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没有安装
class packages {
Package { ensure => 'installed' }
package { 'python-devel': }
package { 'blas-devel': }
package { 'lapack-devel': }
}
但似乎什么都没发生?
当我跑的时候
pip install scipy
我仍然知道Python.h
无法编译,所以我认为Python-devel没有安装您已经定义了类“包”
”,但是您没有显示将该类分配给任何节点。这就像编写一个函数,但从不调用它
您需要声明该类以将其分配给特定节点或所有节点(取决于声明的上下文)。有几种不同的形式,但最简单的方法是添加
include 'packages'
。。。在类定义的右大括号后的行上
结果仍然是非常糟糕的,因为类应该在模块中定义,而不是在site.pp
中定义,声明很少出现在顶部范围(任何节点块、类定义或类型定义之外),但它会指示Puppet在运行时,它应该确保您指定的包已安装。您已经定义了类“packages
”,但没有显示将该类分配给任何节点。这就像编写一个函数,但从不调用它
您需要声明该类以将其分配给特定节点或所有节点(取决于声明的上下文)。有几种不同的形式,但最简单的方法是添加
include 'packages'
。。。在类定义的右大括号后的行上
结果仍然是非常糟糕的,因为类应该在模块中定义,而不是在
site.pp
中定义,声明很少出现在顶部范围(任何节点块、类定义或类型定义之外),但它会指示Puppet在运行时,它应该确保您指定的软件包已安装。实际上,您为模块编写代码的方式看起来并不正确。我会尝试下面的方法
class 'my-python' {
package {'python-devel':
ensure => installed,
}
package {'lapack-devel':
ensure => installed,
}
package {'python-devel':
ensure => installed,
}
}
您可以将类中的每个包定义为单独的包资源。然后,您需要在site.pp中为要安装mypython的节点“包含mypython”。运行puppet,您应该会做得很好。事实上,您为模块编写代码的方式看起来并不正确。我会尝试下面的方法
class 'my-python' {
package {'python-devel':
ensure => installed,
}
package {'lapack-devel':
ensure => installed,
}
package {'python-devel':
ensure => installed,
}
}
您可以将类中的每个包定义为单独的包资源。然后,您需要在site.pp中为要安装mypython的节点“包含mypython”。运行puppet,您应该很好。OP提供的代码很好。他为
Package
资源声明资源默认值,然后依赖它们来声明特定的Package
实例。您的代码在语义上与他的代码相同。在我将“my-python”更改为“my-python”后,我不知道它为什么不喜欢引号。对于ref,我最初是在复制:OP提供的代码很好。他为Package
资源声明资源默认值,然后依赖它们来声明特定的Package
实例。您的代码在语义上与他的代码相同。在我将“my-python”更改为“my-python”后,我不知道它为什么不喜欢引号。对于ref,我最初复制的是: