当我运行时puppet apply
,它会尝试使用以下命令安装软件包:
/usr/bin/yum -d 0 -e 0 -y install couchdb-1.2.0-7.el6
我如何配置以便它按以下方式运行它:
/usr/bin/yum -y install couchdb-1.2.0-7.el6
也就是说,不删除调试日志?
您可以创建一个包含 exec 资源的模块。
> exec {
>
> "couchdb":
> command => "/usr/bin/yum -y -d 0 install couchdb-1.2.0-7.el6",
> path => "/usr/local/bin/:/bin/",
>
> }
作为测试,我对我的 wget 进行了更新。在运行模块之前 wget 位于 1.11.4-2.el5。在我的存储库中,我有 1.11.4-3.el5_8.1。
以下是我的 'yum update list wget.x86_64' 的结果:
Installed Packages
wget.x86_64 1.11.4-2.el5 installed
Available Packages
wget.x86_64 1.11.4-3.el5_8.1 update
这是应用类后我的木偶输出(带有调试选项向您显示输出):
debug: Executing '/usr/bin/yum -y -d 0 update wget.x86_64' 通知: /Stage[main]/Yum-update-test/Exec[wget]/returns: 执行成功
这是应用类/模块后“yum update list wget.x86_64”的输出:
Installed Packages
wget.x86_64 1.11.4-3.el5_8.1 installed
通过这张票等待真正的修复: https ://tickets.puppetlabs.com/browse/PUP-3453
您唯一的解决方案是直接修改 yum 包提供程序:/usr/lib/ruby/site_ruby/1.8/puppet/provider/package/yum.rb
def install
wanted = @resource[:name]
# If not allowing virtual packages, do a query to ensure a real package exists
unless @resource.allow_virtual?
yum *['-d', '0', '-e', '0', '-y', install_options, :list, wanted].compact
end
将“-d”值更改为 10 即可完成
如果您多次提供 yum-d
或选项,它将使用最新的值。-e
所以,你也可以install_options
在你的包资源上使用。例如:
package { 'wget':
install_options => ['-d' , '10' , '-e' , '1' , '-v'],
}
然后,您的 puppet 日志将包括以下内容:
2017-10-19 14:02:48 +0000 Puppet (debug): Executing: '/usr/bin/yum -d 0 -e 0 -y -d 10 -e 1 -v install wget'
...以及所有调试输出。