を実行する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
つまり、デバッグ ログを削除せずに?
このチケットによる実際の修正を待っている間: 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 に変更すると完了です
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: '/usr/bin/yum -y -d 0 update wget.x86_64' を実行しています notice: /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