當我運行puppet apply
,它會嘗試使用下面的命令來安裝軟件包:如何配置puppet,使其以調試模式安裝yum repos?
/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
也就是說,無需拆卸調試日誌?
當我運行puppet apply
,它會嘗試使用下面的命令來安裝軟件包:如何配置puppet,使其以調試模式安裝yum repos?
/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。
這裏是我的「百勝更新列表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
這是應用類(使用調試選項向您展示的輸出中)後,我的木偶輸出:
調試:執行 '的/ usr /斌/蔭-y -d 0更新wget.x86_64' 通知: /階段[主要] /蔭更新測試/執行[wget的] /回報:成功執行
這是類/模塊後的「百勝更新列表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'],
}
你的傀儡日誌隨後將包括類似:
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'
...和所有的調試輸出。
這是一種解決方法。但有幫助。謝謝。 – imdhmd
exec方法的問題在於它不會是冪等的。每次運行都會執行這個命令。另一方面,如果puppet檢測到這個包已經安裝(這很好),puppet的package resource命令將不會執行此操作。您可以考慮使用exec的created/only-if/unless屬性來執行條件執行。 – Gurpreet