如何配置puppet以便它以调试模式安装yum repos?

时间:2012-11-07 11:28:54

标签: yum puppet

当我运行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

即没有删除调试日志?

3 个答案:

答案 0 :(得分:0)

您可以在其中创建一个包含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。

以下是我的更新列表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:执行' / usr / bin / yum -y -d 0更新wget.x86_64'注意:   / stage [main] / Yum-update-test / Exec [wget] / returns:成功执行

这是&yum更新列表wget.x86_64'的输出。在应用类/模块之后:

Installed Packages
wget.x86_64                1.11.4-3.el5_8.1                            installed

答案 1 :(得分:0)

在等待通过此票证进行真正的修复时: 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,你就完成了

答案 2 :(得分:0)

如果您多次提供-d-e选项的yum,它将使用最新的值。因此,您还可以在包资源上使用install_options。例如:

package { 'wget':
  install_options => ['-d' , '10' , '-e' , '1' , '-v'],
}

您的木偶日志将包含以下内容:

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'

...以及所有调试输出。