puppet-selinux
puppet-selinux copied to clipboard
Error: Could not prefetch selinux_fcontext provider 'semanage': uninitialized constant Selinux
Affected Puppet, Ruby, OS and module versions/distributions
- Puppet: 7.25.0
- Ruby: 2.7
- Distribution: RHEL9
- Module version: -
How to reproduce (e.g Puppet code you use)
This seems to be a problem with Puppet Agent, not this module. Related:
- https://github.com/voxpupuli/puppet-selinux/issues/311
- https://tickets.puppetlabs.com/browse/PA-3067 (maybe)
What are you seeing
Error: Could not prefetch selinux_fcontext provider 'semanage': uninitialized constant Selinux
rhel8 7.25 working :heavy_check_mark:
% /opt/puppetlabs/puppet/bin/irb
irb(main):001:0> require "puppet"
=> true
irb(main):002:0> require "selinux"
=> true
irb(main):003:0> Puppet.version
=> "7.25.0"
irb(main):004:0> Puppet.features.selinux?
=> true
irb(main):005:0> File.read "/etc/redhat-release"
=> "Red Hat Enterprise Linux release 8.7 (Ootpa)\n"
irb(main):006:0>
rhel9 7.24 working :heavy_check_mark:
% /opt/puppetlabs/puppet/bin/irb
irb(main):001:0> require "puppet"
=> true
irb(main):002:0> require "selinux"
=> true
irb(main):003:0> Puppet.version
=> "7.24.0"
irb(main):004:0> Puppet.features.selinux?
=> true
irb(main):005:0> File.read "/etc/redhat-release"
=> "Red Hat Enterprise Linux release 9.1 (Plow)\n"
rhel9 7.25 fail :x:
% /opt/puppetlabs/puppet/bin/irb
irb(main):001:0> require "puppet"
=> true
irb(main):002:0> require "selinux"
Traceback (most recent call last):
6: from /opt/puppetlabs/puppet/bin/irb:23:in `<main>'
5: from /opt/puppetlabs/puppet/bin/irb:23:in `load'
4: from /opt/puppetlabs/puppet/lib/ruby/gems/2.7.0/gems/irb-1.2.6/exe/irb:11:in `<top (required)>'
3: from (irb):2
2: from /opt/puppetlabs/puppet/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
1: from /opt/puppetlabs/puppet/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
LoadError (/lib64/libselinux.so.1: version `LIBSELINUX_3.5' not found (required by /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/2.7.0/x86_64-linux/selinux.so)
- /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/2.7.0/x86_64-linux/selinux.so)
irb(main):003:0> Puppet.version
=> "7.25.0"
irb(main):004:0> Puppet.features.selinux?
=> false
irb(main):005:0> File.read "/etc/redhat-release"
=> "Red Hat Enterprise Linux release 9.1 (Plow)\n"
Registered to also post issue @ ticket.puppetlabs.com: https://tickets.puppetlabs.com/browse/PA-5632 :)
I experienced the same issue with Rocky Linux release 9.1. The fix was to upgrade libselinux
i.e: sudo yum upgrade libselinux
.
Puppet expects version libselinux 3.5 and RHEL9 originally shipped with libselinux 3.4 hence the error message LIBSELINUX_3.5' not found
.
Sounds like missing/incorrect requirement in the Puppet RPM.