首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >木偶安装不同版本的多个samba包

木偶安装不同版本的多个samba包
EN

Stack Overflow用户
提问于 2016-11-30 19:57:30
回答 1查看 767关注 0票数 1

我有一个混合环境,需要在不同的红帽子服务器上安装samba/samba3x、libsmbclient包。编写模块的最佳方式是什么,我应该为每个包编写一个单独的模块,还是可以编写一个将使用所有包的模块,以及如何处理不同的版本?做这件事最好的方法是什么?

以下是布局:

代码语言:javascript
复制
Redhat 5:

Host-A:
samba3x-3.6.23-12.el5_11
libsmbclient-3.0.33-3.41.el5_11  

Host-B:
samba-3.0.33-3.41.el5_11
libsmbclient-3.0.33-3.41.el5_11  

-------------------------------

Redhat 6:

Host-C:
samba-3.6.23-35.el6_8.x86_64
libsmbclient-3.6.23-35.el6_8.x86_64   
EN

回答 1

Stack Overflow用户

发布于 2016-12-01 01:16:07

这里有两个选项,您使用的选项取决于您想要做什么。

如果您只想安装最新版本或版本的包,只需使用ensure => installed。这将确保您安装了包,但不会更新或安装它们。这些包在RedHat 5和RedHat 6上都是相同的,所以不太复杂:

代码语言:javascript
复制
package { ['samba', 'libsmbclient']:
  ensure => installed
}

如果您需要特定版本的包,您可以使用params.pp模式,这种模式在许多模块中非常流行。在params.pp中,有一个case语句来确定所需的包版本并从那里继承它。它看起来可能有点像这样。

params.pp

代码语言:javascript
复制
class samba::params {
case $::operatingsystemmajrelease {
 '5': { 
    $samba_version = '3.6.23-12.el5_11'
    $libsmb_version = '3.0.33-3.41.el5_11' 
  }
 '6': {
    $samba_version = '3.6.23-35.el6_8.x86_64'
    $libsmb_version = '3.6.23-35.el6_8.x86_64'
  }
}
}

init.pp

代码语言:javascript
复制
class samba (
  $samba_version = $samba::params::samba_version,
  $libsmb_version = $samba::params::libsmb_version
) inherits samba::params {

  package { 'samba3x':
    ensure => $samba_version
  }
  package { 'libsmbclient':
    ensure => $libsmb_version
  }
}

现在我注意到您的RHEL5服务器上有不同的samba版本。如果您需要支持这一点,则需要使用类似于希拉的方法,在每个节点的基础上覆盖上述参数。这是真的不鼓励在木偶,所以我会建议你仔细考虑,然后再走这条路线,并问它会不会是更容易得到所有的东西在同一版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40897062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档