Satellite 6 puppet "Error 400 on SERVER: Could not find class foreman_scap_client"
Environment
- Red Hat Enterprise Linux 6.x
- Red Hat Enterprise Linux 7.x
- Red Hat Satellite 6.1.1 and above
Issue
- Puppet agent on host is unable to fetch any node definition from satellite or capsule server.
- After running puppet agent on a host command line, it cannot pull pre-determined configuration sets of puppet components from the capsule/satellite server.
#puppet agent -to
- Error message returned
Info: Loading facts in /var/lib/puppet/lib/facter/java_major_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/smartd.rb
Info: Loading facts in /var/lib/puppet/lib/facter/ssh.rb
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class foreman_scap_client for example.host.XXXX on node example.host.XXXX
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
Resolution
- Install OpenSCAP components on a Satellite or Capsules with the Puppet feature enabled.
# yum install puppet-foreman_scap_client -y
# yum install rubygem-smart_proxy_openscap -y
- Restarted the foreman-proxy service in capsule/satellite server to push puppet modules to hosts.
# systemctl restart foreman-proxy
- Run puppet modules on hosts.
#puppet agent -t
For more KB articles/solutions related to Red Hat Satellite 6.x Puppet Issues, please refer to the Red Hat Satellite Consolidated Troubleshooting Article for Red Hat Satellite 6.x Puppet Issues
Root Cause
- OpenSCAP components are missing on a Satellite or Capsules with the Puppet featured enabled.
- Below RPM packages are not install in the satellite/capsule server.
puppet-foreman_scap_client
rubygem-smart_proxy_openscap
- puppet-foreman_scap_client package, when installed, adds the foreman_scap_client module under /usr/share/puppet/modules. This directory is available in all Puppet environments.
- rubygem-foreman_scap_client package adds the openscap and openscap-scanner packages as dependencies.
Diagnostic Steps
- Run below puppet agent on the host's command line and it should result with an error message as:
# puppet agent -to
Info: Retrieving plugin
Info: Loading facts in /var/lib/puppet/lib/facter/megacli_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/megaraid_physical_drives.rb
Info: Loading facts in /var/lib/puppet/lib/facter/ipa_facts.rb
Info: Loading facts in /var/lib/puppet/lib/facter/megacli_legacy.rb
Info: Loading facts in /var/lib/puppet/lib/facter/java_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/rhsm_enabled_repos.rb
Info: Loading facts in /var/lib/puppet/lib/facter/smartmontools_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/service_provider.rb
Info: Loading facts in /var/lib/puppet/lib/facter/java_default_home.rb
Info: Loading facts in /var/lib/puppet/lib/facter/megaraid_physical_drives_sata.rb
Info: Loading facts in /var/lib/puppet/lib/facter/sssd_facts.rb
Info: Loading facts in /var/lib/puppet/lib/facter/megaraid_fw_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/megaraid_fw_package_build.rb
Info: Loading facts in /var/lib/puppet/lib/facter/megaraid_physical_drives_size.rb
Info: Loading facts in /var/lib/puppet/lib/facter/customfacts.rb
Info: Loading facts in /var/lib/puppet/lib/facter/megaraid_virtual_drives.rb
Info: Loading facts in /var/lib/puppet/lib/facter/java_libjvm_path.rb
Info: Loading facts in /var/lib/puppet/lib/facter/rhsm_ca_name.rb
Info: Loading facts in /var/lib/puppet/lib/facter/java_patch_level.rb
Info: Loading facts in /var/lib/puppet/lib/facter/rhsm_disabled_repos.rb
Info: Loading facts in /var/lib/puppet/lib/facter/site_code.rb
Info: Loading facts in /var/lib/puppet/lib/facter/facter_dot_d.rb
Info: Loading facts in /var/lib/puppet/lib/facter/megaraid_serial.rb
Info: Loading facts in /var/lib/puppet/lib/facter/root_home.rb
Info: Loading facts in /var/lib/puppet/lib/facter/rhsm_identity.rb
Info: Loading facts in /var/lib/puppet/lib/facter/lvm_support.rb
Info: Loading facts in /var/lib/puppet/lib/facter/megacli.rb
Info: Loading facts in /var/lib/puppet/lib/facter/default_gateway.rb
Info: Loading facts in /var/lib/puppet/lib/facter/package_provider.rb
Info: Loading facts in /var/lib/puppet/lib/facter/megaraid_physical_drives_sas.rb
Info: Loading facts in /var/lib/puppet/lib/facter/rhsm_available_repos.rb
Info: Loading facts in /var/lib/puppet/lib/facter/puppet_vardir.rb
Info: Loading facts in /var/lib/puppet/lib/facter/vmware.rb
Info: Loading facts in /var/lib/puppet/lib/facter/megaraid_product_name.rb
Info: Loading facts in /var/lib/puppet/lib/facter/pe_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/megaraid_adapters.rb
Info: Loading facts in /var/lib/puppet/lib/facter/java_major_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/smartd.rb
Info: Loading facts in /var/lib/puppet/lib/facter/ssh.rb
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class foreman_scap_client for example.host.XXXX on node example.host.XXXX
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
- Verify puppet packages installed in the capsules server
# rpm -qa puppet-foreman_scap_client
# rpm -qa rubygem-smart_proxy_openscap
- Verify foreman-proxy service is running in capsule server which communicates with satellite server to push puppet modules to hosts.
# systemctl status foreman-proxy
SBR
Product(s)
Category
Tags
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.