Puppet3.6環境でPackageを定義するとWarningが
Puppet3.6環境で、
package { "openssl": ensure => installed, }
のように、packageの定義を記載すると、puppet適用時に
Warning: The package type's allow_virtual parameter will be changing its default value from false to true in a future release. If you do not want to allow virtual packages, please explicitly set allow_virtual to false.
(at /usr/share/ruby/vendor_ruby/puppet/type.rb:816:in `set_default')
という警告が表示される。
allow_virtualというオプションの説明をみると
http://docs.puppetlabs.com/references/3.6.latest/type.html#package-attribute-allow_virtual
> Specifies if virtual package names are allowed for install and uninstall.
とのこと。
virtual packageについての説明はこちら。
http://www.rpm.org/max-rpm/s1-rpm-depend-manual-dependencies.html
RPMのprovidesに記載された名前でパッケージ名をインストールすることができるようになる仕組みの事らしい。
例えば
$ rpm -qp --provides varnish-3.0.3-1.el6.x86_64.rpm config(varnish) = 3.0.3-1.el6 libvarnish.so()(64bit) libvarnishcompat.so()(64bit) libvcl.so()(64bit) libvgz.so()(64bit) libvmod_std.so()(64bit) varnish = 3.0.3-1.el6 varnish(x86-64) = 3.0.3-1.el6
となっているvarnishのパッケージを
$ sudo yum install "config(varnish)"
でインストールできる仕組み。
この挙動自体は知っていたがvirtual packageという名前なのは初めて知った。
allow_virtual parameter will be changing its default value from false to true in a future release.
とのことなので、将来的にallow_virtualのデフォルト値がfalseからtrueになるよとの警告。
もっときれいな対応があるのかもしれないが、
以下の記述を設定に追加して、allow_virtualを明示的に指定することで出力を抑止。
# avoid allow_virtual warnings. Package { allow_virtual => true }