Я запускаю Puppet v3.0 на RHEL 6 и управляю пакетами через ресурс exec
. Я хотел бы добавить несколько контрольных ворот в свой манифест через onlyif
и unless
.
Сначала я хотел бы использовать логические значения, определенные в Hiera [функция автоматического поиска]. Во-вторых, я хотел бы использовать логические значения из сценария bash, работающего под управлением diff <() <()
.
Я использую следующие данные hiera:
---
my-class::package::patch_now:
0
my-class::package::package_list:
acl-2.2.49-6.el6-x86_64
acpid-1.0.10-2.1.el6-x86_64
...etc
и мой манифест выглядит следующим образом:
# less package.pp
class my-classs::package(
$package_list,
$patch_now,
){
exec {'patch_packages':
provider => shell,
path => [ "/bin/", "/usr/bin/" ],
logoutput => true,
timeout => 100,
command => "yum update -e0 -d0 -y $package_list",
unless => "/path/to/my-diff.script 2>&1 > /dev/null",
onlyif => "test 0 -eq $patch_now",
}
}
Как бы я проверил логические значения (0 | 1) из Hiera и diff.script CLI с unless
и onlyif
в контексте выше?
package { "$pkg_name": ensure => "$pkg_version" }
? - person Felix Frank   schedule 24.07.2014yum history info | grep -i 'Transaction ID'
. Я также считаю, что это не очень хорошо работает, когда есть цепочка зависимостей пакетов, если я должен установить желаемое состояние наensure => present,
. Я использую здесьexec
, чтобы установить более 300 пакетов за одну транзакцию, что также быстрее по сравнению с использованием ресурсаpackage
для тех же 300+ пакетов. - person fmaree   schedule 24.07.2014