{code} ``` {color:#0e101a}I will fix that in the Distro, but IMO the parser should respect the rules{color}.
Best, Alex *Update*
Facter 4 raises an exception if /etc/os-release contains a comment:
{code:java} # facter --version 4.2.14
# head -2 / etc/os-release # This is a comment NAME="Red Hat Enterprise Linux"
# facter os Traceback (most recent call last): 26: from / opt/puppetlabs/puppet/ bin/facter:5:in `<main>' 25: from /opt/puppetlabs/puppet/ lib/ruby/ 2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require' 24: from /opt/puppetlabs/puppet/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require' 23: from /opt/puppetlabs/puppet/lib/ruby/ vendor_ruby/facter/ framework/cli/cli_launcher.rb:6:in `<top (required)>' 22: from /opt/puppetlabs/puppet/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require' 21: from /opt/puppetlabs/puppet/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require' 20: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter.rb:7:in `<top (required)>' 19: from /opt/puppetlabs/puppet/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require' 18: from /opt/puppetlabs/puppet/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require' 17: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter/framework/core/file_loader.rb:54:in `<top (required)>' 16: from /opt/puppetlabs/puppet/lib/ruby/2.7.0/singleton.rb:123:in `instance' 15: from /opt/puppetlabs/puppet/lib/ruby/2.7.0/singleton.rb:123:in `synchronize' 14: from /opt/puppetlabs/puppet/lib/ruby/2.7.0/singleton.rb:125:in `block in instance' 13: from /opt/puppetlabs/puppet/lib/ruby/2.7.0/singleton.rb:125:in `new' 12: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter/framework/detector/os_detector.rb:13:in `initialize' 11: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter/framework/detector/os_detector.rb:26:in `detect' 10: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter/framework/detector/os_detector.rb:77:in `detect_distro' 9: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter/framework/detector/os_detector.rb:77:in `each' 8: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter/framework/detector/os_detector.rb:78:in `block in detect_distro' 7: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter/ resolvers/ base_resolver.rb:24:in `resolve' 6: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter/resolvers/base_resolver.rb:24:in `synchronize' 5: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter/resolvers/base_resolver.rb:26:in `block in resolve' 4: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter/resolvers/ os_release.rb :23:in `post_resolve' Error 3 : Could not initialize global default settings from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter/resolvers/os_release.rb : 23:in `fetch' 2: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter/resolvers/os_release.rb:36:in `block in post_resolve' 1: from /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter/resolvers/os_release.rb:59:in `fill_fact_list' /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/facter/resolvers/os_release.rb:59:in `[]': odd number of arguments for Hash (ArgumentError) {code} Facter 3 does not include "os.distro" by default. But if you install lsb-release related packages, then it correctly ignores the comment and reports the fact: { color code : #0e101a noformat } I will fix that in the Distro # facter --version 3.14.24 (commit 91ed8a2de5c9d686345859fe12ea2914415758f0)
# yum install redhat-lsb-core ...
# head -2 /etc/os-release # This is a comment NAME="Red Hat Enterprise Linux"
# facter os { architecture => "x86_64" , but IMO the parser should respect the rules distro => { color codename => "Ootpa", description => "Red Hat Enterprise Linux release 8.0 (Ootpa)", id => "RedHatEnterprise", release => { full => "8.0", major => "8", minor => "0" } , specification => ":core-4 . 1-amd64:core-4.1-noarch" }, Best family => "RedHat" , Alex hardware => "x86_64", name => "RedHat", release => { full => "8.0", major => "8", minor => "0" }, selinux => { enabled => false } } {code} |
|
|