У вас есть 2 варианта здесь, и какой из них вы используете, зависит от того, что вы хотите сделать.
Если вы просто хотите установить последнюю версию или a версии пакетов, просто используйте ensure => installed
. Это позволит вам установить пакет, но не будет его обновлять или устанавливать. Пакеты называются одинаково на RedHat 5 и RedHat 6, так что это не так уж сложно:
package { ['samba', 'libsmbclient']:
ensure => installed
}
Если вам нужен конкретную версию из пакетов, вы можете использовать params.pp
шаблон, который стал популярным в многих модулей , Внутри params.pp есть оператор case, который определяет вашу требуемую версию пакета и наследует ее оттуда. Это может показаться немного похожим на это.
params.pp
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
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 разные версии самбы на них. Если вам нужно поддерживать , то вам нужно использовать что-то вроде hiera, чтобы переопределить приведенные выше параметры для каждого узла. Это действительно обескуражено в Puppet, поэтому я бы посоветовал вам тщательно подумать, прежде чем идти по этому маршруту, и спросить, не будет ли проще получить все на одной и той же версии.
Thank You Frap! Ваш ответ очень полезен. Поэтому просто уточнить, лучше ли использовать params.pp или пойти с hiera для версии пакета и т. Д. К сожалению, я не могу стандартизировать версии пакетов по всем направлениям. Некоторые системы должны иметь разные версии. – Ura718
Я использовал бы params.pp и hiera в комбинации, где это возможно. Это не одно или тоже, гибкость означает, что вы можете делать все, что лучше для вас. – jaxxstorm