I'm try to get a basic puppet install working after the mid-distro upgrade to 4.x, and I'm stuck. My test system has the master and agent on the same machine. The agent reports that it can not fetch its node definition. audit2allow and iptables --list report nothing interesting. Agent error: [root@karsh puppet]# puppet agent --test Warning: Unable to fetch my node definition, but the agent run will continue: Warning: Error 400 on SERVER: Could not retrieve facts for karsh.domain.avtechpulse.com: undefined method `sanitize' for #<Hash:0x007fe6c0760558> Info: Retrieving pluginfacts Info: Retrieving plugin Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed when searching for node karsh.domain.avtechpulse.com: Could not retrieve facts for karsh.domain.avtechpulse.com: undefined method `sanitize' for #<Hash:0x007fe6c09ad338> Warning: Not using cache on failed catalog Error: Could not retrieve catalog; skipping run Master log: [root@karsh puppet]# journalctl -r -u puppetmaster --no-pager Jun 09 09:09:10 karsh puppet[30913]: Error: Could not retrieve facts for karsh.domain.avtechpulse.com: undefined method `sanitize' for #<Hash:0x007fe6c04060b0> Jun 09 09:09:01 karsh puppet[30913]: Error: Failed when searching for node karsh.domain.avtechpulse.com: Could not retrieve facts for karsh.domain.avtechpulse.com: undefined method `sanitize' for #<Hash:0x00000001573f90> Jun 09 09:09:01 karsh puppet[30913]: Error: Failed when searching for node karsh.domain.avtechpulse.com: Could not retrieve facts for karsh.domain.avtechpulse.com: undefined method `sanitize' for #<Hash:0x00000001573f90> Jun 09 09:09:00 karsh puppet[30913]: Error: Could not retrieve facts for karsh.domain.avtechpulse.com: undefined method `sanitize' for #<Hash:0x00000001ced190> Jun 09 09:09:00 karsh puppet[30913]: You can avoid this warning in the future by setting the SafeYAML::OPTIONS[:default_mode] option (to :safe or :unsafe). Jun 09 09:09:00 karsh puppet[30913]: Called 'load_file' without the :safe option -- defaulting to safe mode. Jun 09 09:08:40 karsh puppet[30913]: Notice: Starting Puppet master version 4.1.0 Jun 09 09:08:40 karsh puppet[30913]: (at /usr/share/ruby/vendor_ruby/puppet/application/master.rb:209:in `main') Jun 09 09:08:40 karsh puppet[30913]: Warning: The WEBrick Puppet master server is deprecated and will be removed in a future release. Please use Puppet Server instead. See http://links.puppetlabs.com/deprecate-rack-webrick-servers for more information. Jun 09 09:08:38 karsh systemd[1]: Starting Puppet master... puppet.conf: [main] dns_alt_names = puppet4,puppet4.domain.avtechpulse.com,puppet4.avtechpulse.com server = puppet4.domain.avtechpulse.com environment = production manifests/site.pp: Service { provider => 'systemd' } node default { include default_services } class default_services { # disabled and stopped $svc_off = ["isdn", "yum-updatesd", "bluetooth", "cpuspeed", "iscsi", "iscsid", "firewalld"] service { $svc_off: ensure => "stopped", enable => "false" } # enabled and running $svc_on = ["crond", "chronyd", "auditd", "rsyslog", "NetworkManager" ] service { $svc_on: ensure => "running", enable => "true" } # enabled only service { "NetworkManager-wait-online": enable => "true" } } Full debug output: [root@karsh puppet]# puppet agent --test --debug Debug: Caching environment 'production' (cache ttl: 0) Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Debug: Using settings: adding file resource 'confdir': 'File[/etc/puppet]{:path=>"/etc/puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dsimport does not exist Debug: Puppet::Type::User::ProviderPw: file pw does not exist Debug: Puppet::Type::User::ProviderUser_role_add: file roleadd does not exist Debug: Failed to load library 'ldap' for feature 'ldap' Debug: Puppet::Type::User::ProviderLdap: feature ldap is missing Debug: Puppet::Type::Group::ProviderDirectoryservice: file /usr/bin/dscl does not exist Debug: Puppet::Type::Group::ProviderPw: file pw does not exist Debug: Failed to load library 'ldap' for feature 'ldap' Debug: Puppet::Type::Group::ProviderLdap: feature ldap is missing Debug: Using settings: adding file resource 'vardir': 'File[/var/lib/puppet]{:path=>"/var/lib/puppet", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'logdir': 'File[/var/log/puppet]{:path=>"/var/log/puppet", :mode=>"750", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'statedir': 'File[/var/lib/puppet/state]{:path=>"/var/lib/puppet/state", :mode=>"1755", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'rundir': 'File[/var/run/puppet]{:path=>"/var/run/puppet", :mode=>"755", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'libdir': 'File[/var/lib/puppet/lib]{:path=>"/var/lib/puppet/lib", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'preview_outputdir': 'File[/var/lib/puppet/preview]{:path=>"/var/lib/puppet/preview", :mode=>"750", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'certdir': 'File[/etc/puppet/ssl/certs]{:path=>"/etc/puppet/ssl/certs", :mode=>"755", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'ssldir': 'File[/etc/puppet/ssl]{:path=>"/etc/puppet/ssl", :mode=>"771", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'publickeydir': 'File[/etc/puppet/ssl/public_keys]{:path=>"/etc/puppet/ssl/public_keys", :mode=>"755", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'requestdir': 'File[/etc/puppet/ssl/certificate_requests]{:path=>"/etc/puppet/ssl/certificate_requests", :mode=>"755", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'privatekeydir': 'File[/etc/puppet/ssl/private_keys]{:path=>"/etc/puppet/ssl/private_keys", :mode=>"750", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'privatedir': 'File[/etc/puppet/ssl/private]{:path=>"/etc/puppet/ssl/private", :mode=>"750", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'hostcert': 'File[/etc/puppet/ssl/certs/karsh.domain.avtechpulse.com.pem]{:path=>"/etc/puppet/ssl/certs/karsh.domain.avtechpulse.com.pem", :mode=>"644", :owner=>"puppet", :group=>"puppet", :ensure=>:file, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'hostprivkey': 'File[/etc/puppet/ssl/private_keys/karsh.domain.avtechpulse.com.pem]{:path=>"/etc/puppet/ssl/private_keys/karsh.domain.avtechpulse.com.pem", :mode=>"640", :owner=>"puppet", :group=>"puppet", :ensure=>:file, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'hostpubkey': 'File[/etc/puppet/ssl/public_keys/karsh.domain.avtechpulse.com.pem]{:path=>"/etc/puppet/ssl/public_keys/karsh.domain.avtechpulse.com.pem", :mode=>"644", :owner=>"puppet", :group=>"puppet", :ensure=>:file, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'localcacert': 'File[/etc/puppet/ssl/certs/ca.pem]{:path=>"/etc/puppet/ssl/certs/ca.pem", :mode=>"644", :owner=>"puppet", :group=>"puppet", :ensure=>:file, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'hostcrl': 'File[/etc/puppet/ssl/crl.pem]{:path=>"/etc/puppet/ssl/crl.pem", :mode=>"644", :owner=>"puppet", :group=>"puppet", :ensure=>:file, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'clientyamldir': 'File[/var/lib/puppet/client_yaml]{:path=>"/var/lib/puppet/client_yaml", :mode=>"750", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'client_datadir': 'File[/var/lib/puppet/client_data]{:path=>"/var/lib/puppet/client_data", :mode=>"750", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'clientbucketdir': 'File[/var/lib/puppet/clientbucket]{:path=>"/var/lib/puppet/clientbucket", :mode=>"750", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'lastrunfile': 'File[/var/lib/puppet/state/last_run_summary.yaml]{:path=>"/var/lib/puppet/state/last_run_summary.yaml", :mode=>"644", :ensure=>:file, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'lastrunreport': 'File[/var/lib/puppet/state/last_run_report.yaml]{:path=>"/var/lib/puppet/state/last_run_report.yaml", :mode=>"640", :ensure=>:file, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'graphdir': 'File[/var/lib/puppet/state/graphs]{:path=>"/var/lib/puppet/state/graphs", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: Using settings: adding file resource 'pluginfactdest': 'File[/var/lib/puppet/facts.d]{:path=>"/var/lib/puppet/facts.d", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' Debug: /File[/etc/puppet]/seluser: Found seluser default 'system_u' for /etc/puppet Debug: /File[/etc/puppet]/selrole: Found selrole default 'object_r' for /etc/puppet Debug: /File[/etc/puppet]/seltype: Found seltype default 'puppet_etc_t' for /etc/puppet Debug: /File[/etc/puppet]/selrange: Found selrange default 's0' for /etc/puppet Debug: /File[/var/lib/puppet]/seluser: Found seluser default 'system_u' for /var/lib/puppet Debug: /File[/var/lib/puppet]/selrole: Found selrole default 'object_r' for /var/lib/puppet Debug: /File[/var/lib/puppet]/seltype: Found seltype default 'puppet_var_lib_t' for /var/lib/puppet Debug: /File[/var/lib/puppet]/selrange: Found selrange default 's0' for /var/lib/puppet Debug: /File[/var/log/puppet]/seluser: Found seluser default 'system_u' for /var/log/puppet Debug: /File[/var/log/puppet]/selrole: Found selrole default 'object_r' for /var/log/puppet Debug: /File[/var/log/puppet]/seltype: Found seltype default 'puppet_log_t' for /var/log/puppet Debug: /File[/var/log/puppet]/selrange: Found selrange default 's0' for /var/log/puppet Debug: /File[/var/lib/puppet/state]/seluser: Found seluser default 'system_u' for /var/lib/puppet/state Debug: /File[/var/lib/puppet/state]/selrole: Found selrole default 'object_r' for /var/lib/puppet/state Debug: /File[/var/lib/puppet/state]/seltype: Found seltype default 'puppet_var_lib_t' for /var/lib/puppet/state Debug: /File[/var/lib/puppet/state]/selrange: Found selrange default 's0' for /var/lib/puppet/state Debug: /File[/var/run/puppet]/seluser: Found seluser default 'system_u' for /var/run/puppet Debug: /File[/var/run/puppet]/selrole: Found selrole default 'object_r' for /var/run/puppet Debug: /File[/var/run/puppet]/seltype: Found seltype default 'puppet_var_run_t' for /var/run/puppet Debug: /File[/var/run/puppet]/selrange: Found selrange default 's0' for /var/run/puppet Debug: /File[/var/lib/puppet/lib]/seluser: Found seluser default 'system_u' for /var/lib/puppet/lib Debug: /File[/var/lib/puppet/lib]/selrole: Found selrole default 'object_r' for /var/lib/puppet/lib Debug: /File[/var/lib/puppet/lib]/seltype: Found seltype default 'puppet_var_lib_t' for /var/lib/puppet/lib Debug: /File[/var/lib/puppet/lib]/selrange: Found selrange default 's0' for /var/lib/puppet/lib Debug: /File[/var/lib/puppet/preview]/seluser: Found seluser default 'system_u' for /var/lib/puppet/preview Debug: /File[/var/lib/puppet/preview]/selrole: Found selrole default 'object_r' for /var/lib/puppet/preview Debug: /File[/var/lib/puppet/preview]/seltype: Found seltype default 'puppet_var_lib_t' for /var/lib/puppet/preview Debug: /File[/var/lib/puppet/preview]/selrange: Found selrange default 's0' for /var/lib/puppet/preview Debug: /File[/etc/puppet/ssl/certs]/seluser: Found seluser default 'system_u' for /etc/puppet/ssl/certs Debug: /File[/etc/puppet/ssl/certs]/selrole: Found selrole default 'object_r' for /etc/puppet/ssl/certs Debug: /File[/etc/puppet/ssl/certs]/seltype: Found seltype default 'puppet_etc_t' for /etc/puppet/ssl/certs Debug: /File[/etc/puppet/ssl/certs]/selrange: Found selrange default 's0' for /etc/puppet/ssl/certs Debug: /File[/etc/puppet/ssl]/seluser: Found seluser default 'system_u' for /etc/puppet/ssl Debug: /File[/etc/puppet/ssl]/selrole: Found selrole default 'object_r' for /etc/puppet/ssl Debug: /File[/etc/puppet/ssl]/seltype: Found seltype default 'puppet_etc_t' for /etc/puppet/ssl Debug: /File[/etc/puppet/ssl]/selrange: Found selrange default 's0' for /etc/puppet/ssl Debug: /File[/etc/puppet/ssl/public_keys]/seluser: Found seluser default 'system_u' for /etc/puppet/ssl/public_keys Debug: /File[/etc/puppet/ssl/public_keys]/selrole: Found selrole default 'object_r' for /etc/puppet/ssl/public_keys Debug: /File[/etc/puppet/ssl/public_keys]/seltype: Found seltype default 'puppet_etc_t' for /etc/puppet/ssl/public_keys Debug: /File[/etc/puppet/ssl/public_keys]/selrange: Found selrange default 's0' for /etc/puppet/ssl/public_keys Debug: /File[/etc/puppet/ssl/certificate_requests]/seluser: Found seluser default 'system_u' for /etc/puppet/ssl/certificate_requests Debug: /File[/etc/puppet/ssl/certificate_requests]/selrole: Found selrole default 'object_r' for /etc/puppet/ssl/certificate_requests Debug: /File[/etc/puppet/ssl/certificate_requests]/seltype: Found seltype default 'puppet_etc_t' for /etc/puppet/ssl/certificate_requests Debug: /File[/etc/puppet/ssl/certificate_requests]/selrange: Found selrange default 's0' for /etc/puppet/ssl/certificate_requests Debug: /File[/etc/puppet/ssl/private_keys]/seluser: Found seluser default 'system_u' for /etc/puppet/ssl/private_keys Debug: /File[/etc/puppet/ssl/private_keys]/selrole: Found selrole default 'object_r' for /etc/puppet/ssl/private_keys Debug: /File[/etc/puppet/ssl/private_keys]/seltype: Found seltype default 'puppet_etc_t' for /etc/puppet/ssl/private_keys Debug: /File[/etc/puppet/ssl/private_keys]/selrange: Found selrange default 's0' for /etc/puppet/ssl/private_keys Debug: /File[/etc/puppet/ssl/private]/seluser: Found seluser default 'system_u' for /etc/puppet/ssl/private Debug: /File[/etc/puppet/ssl/private]/selrole: Found selrole default 'object_r' for /etc/puppet/ssl/private Debug: /File[/etc/puppet/ssl/private]/seltype: Found seltype default 'puppet_etc_t' for /etc/puppet/ssl/private Debug: /File[/etc/puppet/ssl/private]/selrange: Found selrange default 's0' for /etc/puppet/ssl/private Debug: /File[/etc/puppet/ssl/certs/karsh.domain.avtechpulse.com.pem]/seluser: Found seluser default 'system_u' for /etc/puppet/ssl/certs/karsh.domain.avtechpulse.com.pem Debug: /File[/etc/puppet/ssl/certs/karsh.domain.avtechpulse.com.pem]/selrole: Found selrole default 'object_r' for /etc/puppet/ssl/certs/karsh.domain.avtechpulse.com.pem Debug: /File[/etc/puppet/ssl/certs/karsh.domain.avtechpulse.com.pem]/seltype: Found seltype default 'puppet_etc_t' for /etc/puppet/ssl/certs/karsh.domain.avtechpulse.com.pem Debug: /File[/etc/puppet/ssl/certs/karsh.domain.avtechpulse.com.pem]/selrange: Found selrange default 's0' for /etc/puppet/ssl/certs/karsh.domain.avtechpulse.com.pem Debug: /File[/etc/puppet/ssl/private_keys/karsh.domain.avtechpulse.com.pem]/seluser: Found seluser default 'system_u' for /etc/puppet/ssl/private_keys/karsh.domain.avtechpulse.com.pem Debug: /File[/etc/puppet/ssl/private_keys/karsh.domain.avtechpulse.com.pem]/selrole: Found selrole default 'object_r' for /etc/puppet/ssl/private_keys/karsh.domain.avtechpulse.com.pem Debug: /File[/etc/puppet/ssl/private_keys/karsh.domain.avtechpulse.com.pem]/seltype: Found seltype default 'puppet_etc_t' for /etc/puppet/ssl/private_keys/karsh.domain.avtechpulse.com.pem Debug: /File[/etc/puppet/ssl/private_keys/karsh.domain.avtechpulse.com.pem]/selrange: Found selrange default 's0' for /etc/puppet/ssl/private_keys/karsh.domain.avtechpulse.com.pem Debug: /File[/etc/puppet/ssl/public_keys/karsh.domain.avtechpulse.com.pem]/seluser: Found seluser default 'system_u' for /etc/puppet/ssl/public_keys/karsh.domain.avtechpulse.com.pem Debug: /File[/etc/puppet/ssl/public_keys/karsh.domain.avtechpulse.com.pem]/selrole: Found selrole default 'object_r' for /etc/puppet/ssl/public_keys/karsh.domain.avtechpulse.com.pem Debug: /File[/etc/puppet/ssl/public_keys/karsh.domain.avtechpulse.com.pem]/seltype: Found seltype default 'puppet_etc_t' for /etc/puppet/ssl/public_keys/karsh.domain.avtechpulse.com.pem Debug: /File[/etc/puppet/ssl/public_keys/karsh.domain.avtechpulse.com.pem]/selrange: Found selrange default 's0' for /etc/puppet/ssl/public_keys/karsh.domain.avtechpulse.com.pem Debug: /File[/etc/puppet/ssl/certs/ca.pem]/seluser: Found seluser default 'system_u' for /etc/puppet/ssl/certs/ca.pem Debug: /File[/etc/puppet/ssl/certs/ca.pem]/selrole: Found selrole default 'object_r' for /etc/puppet/ssl/certs/ca.pem Debug: /File[/etc/puppet/ssl/certs/ca.pem]/seltype: Found seltype default 'puppet_etc_t' for /etc/puppet/ssl/certs/ca.pem Debug: /File[/etc/puppet/ssl/certs/ca.pem]/selrange: Found selrange default 's0' for /etc/puppet/ssl/certs/ca.pem Debug: /File[/etc/puppet/ssl/crl.pem]/seluser: Found seluser default 'system_u' for /etc/puppet/ssl/crl.pem Debug: /File[/etc/puppet/ssl/crl.pem]/selrole: Found selrole default 'object_r' for /etc/puppet/ssl/crl.pem Debug: /File[/etc/puppet/ssl/crl.pem]/seltype: Found seltype default 'puppet_etc_t' for /etc/puppet/ssl/crl.pem Debug: /File[/etc/puppet/ssl/crl.pem]/selrange: Found selrange default 's0' for /etc/puppet/ssl/crl.pem Debug: /File[/var/lib/puppet/client_yaml]/seluser: Found seluser default 'system_u' for /var/lib/puppet/client_yaml Debug: /File[/var/lib/puppet/client_yaml]/selrole: Found selrole default 'object_r' for /var/lib/puppet/client_yaml Debug: /File[/var/lib/puppet/client_yaml]/seltype: Found seltype default 'puppet_var_lib_t' for /var/lib/puppet/client_yaml Debug: /File[/var/lib/puppet/client_yaml]/selrange: Found selrange default 's0' for /var/lib/puppet/client_yaml Debug: /File[/var/lib/puppet/client_data]/seluser: Found seluser default 'system_u' for /var/lib/puppet/client_data Debug: /File[/var/lib/puppet/client_data]/selrole: Found selrole default 'object_r' for /var/lib/puppet/client_data Debug: /File[/var/lib/puppet/client_data]/seltype: Found seltype default 'puppet_var_lib_t' for /var/lib/puppet/client_data Debug: /File[/var/lib/puppet/client_data]/selrange: Found selrange default 's0' for /var/lib/puppet/client_data Debug: /File[/var/lib/puppet/clientbucket]/seluser: Found seluser default 'system_u' for /var/lib/puppet/clientbucket Debug: /File[/var/lib/puppet/clientbucket]/selrole: Found selrole default 'object_r' for /var/lib/puppet/clientbucket Debug: /File[/var/lib/puppet/clientbucket]/seltype: Found seltype default 'puppet_var_lib_t' for /var/lib/puppet/clientbucket Debug: /File[/var/lib/puppet/clientbucket]/selrange: Found selrange default 's0' for /var/lib/puppet/clientbucket Debug: /File[/var/lib/puppet/state/last_run_summary.yaml]/seluser: Found seluser default 'system_u' for /var/lib/puppet/state/last_run_summary.yaml Debug: /File[/var/lib/puppet/state/last_run_summary.yaml]/selrole: Found selrole default 'object_r' for /var/lib/puppet/state/last_run_summary.yaml Debug: /File[/var/lib/puppet/state/last_run_summary.yaml]/seltype: Found seltype default 'puppet_var_lib_t' for /var/lib/puppet/state/last_run_summary.yaml Debug: /File[/var/lib/puppet/state/last_run_summary.yaml]/selrange: Found selrange default 's0' for /var/lib/puppet/state/last_run_summary.yaml Debug: /File[/var/lib/puppet/state/last_run_report.yaml]/seluser: Found seluser default 'system_u' for /var/lib/puppet/state/last_run_report.yaml Debug: /File[/var/lib/puppet/state/last_run_report.yaml]/selrole: Found selrole default 'object_r' for /var/lib/puppet/state/last_run_report.yaml Debug: /File[/var/lib/puppet/state/last_run_report.yaml]/seltype: Found seltype default 'puppet_var_lib_t' for /var/lib/puppet/state/last_run_report.yaml Debug: /File[/var/lib/puppet/state/last_run_report.yaml]/selrange: Found selrange default 's0' for /var/lib/puppet/state/last_run_report.yaml Debug: /File[/var/lib/puppet/state/graphs]/seluser: Found seluser default 'system_u' for /var/lib/puppet/state/graphs Debug: /File[/var/lib/puppet/state/graphs]/selrole: Found selrole default 'object_r' for /var/lib/puppet/state/graphs Debug: /File[/var/lib/puppet/state/graphs]/seltype: Found seltype default 'puppet_var_lib_t' for /var/lib/puppet/state/graphs Debug: /File[/var/lib/puppet/state/graphs]/selrange: Found selrange default 's0' for /var/lib/puppet/state/graphs Debug: /File[/var/lib/puppet/facts.d]/seluser: Found seluser default 'system_u' for /var/lib/puppet/facts.d Debug: /File[/var/lib/puppet/facts.d]/selrole: Found selrole default 'object_r' for /var/lib/puppet/facts.d Debug: /File[/var/lib/puppet/facts.d]/seltype: Found seltype default 'puppet_var_lib_t' for /var/lib/puppet/facts.d Debug: /File[/var/lib/puppet/facts.d]/selrange: Found selrange default 's0' for /var/lib/puppet/facts.d Debug: /File[/var/lib/puppet/state]: Adding autorequire relationship with File[/var/lib/puppet] Debug: /File[/var/lib/puppet/lib]: Adding autorequire relationship with File[/var/lib/puppet] Debug: /File[/var/lib/puppet/preview]: Adding autorequire relationship with File[/var/lib/puppet] Debug: /File[/etc/puppet/ssl/certs]: Adding autorequire relationship with File[/etc/puppet/ssl] Debug: /File[/etc/puppet/ssl]: Adding autorequire relationship with File[/etc/puppet] Debug: /File[/etc/puppet/ssl/public_keys]: Adding autorequire relationship with File[/etc/puppet/ssl] Debug: /File[/etc/puppet/ssl/certificate_requests]: Adding autorequire relationship with File[/etc/puppet/ssl] Debug: /File[/etc/puppet/ssl/private_keys]: Adding autorequire relationship with File[/etc/puppet/ssl] Debug: /File[/etc/puppet/ssl/private]: Adding autorequire relationship with File[/etc/puppet/ssl] Debug: /File[/etc/puppet/ssl/certs/karsh.domain.avtechpulse.com.pem]: Adding autorequire relationship with File[/etc/puppet/ssl/certs] Debug: /File[/etc/puppet/ssl/private_keys/karsh.domain.avtechpulse.com.pem]: Adding autorequire relationship with File[/etc/puppet/ssl/private_keys] Debug: /File[/etc/puppet/ssl/public_keys/karsh.domain.avtechpulse.com.pem]: Adding autorequire relationship with File[/etc/puppet/ssl/public_keys] Debug: /File[/etc/puppet/ssl/certs/ca.pem]: Adding autorequire relationship with File[/etc/puppet/ssl/certs] Debug: /File[/etc/puppet/ssl/crl.pem]: Adding autorequire relationship with File[/etc/puppet/ssl] Debug: /File[/var/lib/puppet/client_yaml]: Adding autorequire relationship with File[/var/lib/puppet] Debug: /File[/var/lib/puppet/client_data]: Adding autorequire relationship with File[/var/lib/puppet] Debug: /File[/var/lib/puppet/clientbucket]: Adding autorequire relationship with File[/var/lib/puppet] Debug: /File[/var/lib/puppet/state/last_run_summary.yaml]: Adding autorequire relationship with File[/var/lib/puppet/state] Debug: /File[/var/lib/puppet/state/last_run_report.yaml]: Adding autorequire relationship with File[/var/lib/puppet/state] Debug: /File[/var/lib/puppet/state/graphs]: Adding autorequire relationship with File[/var/lib/puppet/state] Debug: /File[/var/lib/puppet/facts.d]: Adding autorequire relationship with File[/var/lib/puppet] Debug: /File[/var/lib/puppet/state/last_run_summary.yaml]/seluser: seluser changed 'unconfined_u' to 'system_u' Debug: /File[/var/lib/puppet/state/last_run_report.yaml]/seluser: seluser changed 'unconfined_u' to 'system_u' Debug: Finishing transaction 9303500 Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Debug: Runtime environment: puppet_version=4.1.0, ruby_version=2.2.2, run_mode=agent, default_encoding=UTF-8 Debug: Using cached certificate for ca Debug: Using cached certificate for karsh.domain.avtechpulse.com Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Debug: Failed to load library 'msgpack' for feature 'msgpack' Debug: Puppet::Network::Format[msgpack]: feature msgpack is missing Debug: node supports formats: pson yaml binary Debug: Using cached certificate for ca Debug: Using cached certificate for karsh.domain.avtechpulse.com Debug: Creating new connection for https://puppet4.domain.avtechpulse.com:8140 Debug: Using cached certificate_revocation_list for ca Debug: Starting connection for https://puppet4.domain.avtechpulse.com:8140 Debug: Caching connection for https://puppet4.domain.avtechpulse.com:8140 Warning: Unable to fetch my node definition, but the agent run will continue: Warning: Error 400 on SERVER: Could not retrieve facts for karsh.domain.avtechpulse.com: undefined method `sanitize' for #<Hash:0x007fe6c08b3180> Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Info: Retrieving pluginfacts Debug: /File[/var/lib/puppet/facts.d]/seluser: Found seluser default 'system_u' for /var/lib/puppet/facts.d Debug: /File[/var/lib/puppet/facts.d]/selrole: Found selrole default 'object_r' for /var/lib/puppet/facts.d Debug: /File[/var/lib/puppet/facts.d]/seltype: Found seltype default 'puppet_var_lib_t' for /var/lib/puppet/facts.d Debug: /File[/var/lib/puppet/facts.d]/selrange: Found selrange default 's0' for /var/lib/puppet/facts.d Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Debug: Failed to load library 'msgpack' for feature 'msgpack' Debug: Puppet::Network::Format[msgpack]: feature msgpack is missing Debug: file_metadata supports formats: pson yaml binary Debug: Using cached connection for https://puppet4.domain.avtechpulse.com:8140 Debug: Caching connection for https://puppet4.domain.avtechpulse.com:8140 Debug: Finishing transaction 10903920 Info: Retrieving plugin Debug: /File[/var/lib/puppet/lib]/seluser: Found seluser default 'system_u' for /var/lib/puppet/lib Debug: /File[/var/lib/puppet/lib]/selrole: Found selrole default 'object_r' for /var/lib/puppet/lib Debug: /File[/var/lib/puppet/lib]/seltype: Found seltype default 'puppet_var_lib_t' for /var/lib/puppet/lib Debug: /File[/var/lib/puppet/lib]/selrange: Found selrange default 's0' for /var/lib/puppet/lib Debug: Failed to load library 'msgpack' for feature 'msgpack' Debug: Puppet::Network::Format[msgpack]: feature msgpack is missing Debug: file_metadata supports formats: pson yaml binary Debug: Using cached connection for https://puppet4.domain.avtechpulse.com:8140 Debug: Caching connection for https://puppet4.domain.avtechpulse.com:8140 Debug: Finishing transaction 10379040 Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (cache ttl: 0) Debug: Loading external facts from /var/lib/puppet/facts.d Debug: Facter: Found no suitable resolves of 1 for ec2_metadata Debug: Facter: value for ec2_metadata is still nil Debug: Facter: Found no suitable resolves of 1 for ec2_metadata Debug: Facter: value for ec2_metadata is still nil Debug: Facter: Found no suitable resolves of 1 for ec2_userdata Debug: Facter: value for ec2_userdata is still nil Debug: Facter: Found no suitable resolves of 1 for gce Debug: Facter: value for gce is still nil Debug: Facter: value for dhcp_servers is still nil Debug: Facter: value for zpool_version is still nil Debug: Facter: value for vlans is still nil Debug: Facter: Found no suitable resolves of 1 for xendomains Debug: Facter: value for xendomains is still nil Debug: Facter: value for cfkey is still nil Debug: Facter: value for ipaddress6 is still nil Debug: Facter: Found no suitable resolves of 1 for zonename Debug: Facter: value for zonename is still nil Debug: Facter: value for lsbminordistrelease is still nil Debug: Facter: value for ipaddress6_enp0s25 is still nil Debug: Facter: value for ipaddress6_lo is still nil Debug: Facter: value for macaddress_lo is still nil Debug: Facter: value for zfs_version is still nil Debug: Facter: Found no suitable resolves of 1 for system32 Debug: Facter: value for system32 is still nil Debug: Facter: Found no suitable resolves of 1 for processor Debug: Facter: value for processor is still nil Debug: Facter: value for is_rsc is still nil Debug: Facter: value for is_rsc is still nil Debug: Facter: Found no suitable resolves of 1 for rsc_region Debug: Facter: value for rsc_region is still nil Debug: Facter: value for is_rsc is still nil Debug: Facter: Found no suitable resolves of 1 for rsc_instance_id Debug: Facter: value for rsc_instance_id is still nil Debug: Facter: Found no suitable resolves of 2 for iphostnumber Debug: Facter: value for iphostnumber is still nil Debug: Facter: Found no suitable resolves of 2 for swapencrypted Debug: Facter: value for swapencrypted is still nil Debug: Failed to load library 'msgpack' for feature 'msgpack' Debug: Puppet::Network::Format[msgpack]: feature msgpack is missing Debug: catalog supports formats: pson yaml dot binary Debug: Using cached connection for https://puppet4.domain.avtechpulse.com:8140 Debug: Caching connection for https://puppet4.domain.avtechpulse.com:8140 Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed when searching for node karsh.domain.avtechpulse.com: Could not retrieve facts for karsh.domain.avtechpulse.com: undefined method `sanitize' for #<Hash:0x00000001b570d8> Warning: Not using cache on failed catalog Error: Could not retrieve catalog; skipping run Debug: Using cached connection for https://puppet4.domain.avtechpulse.com:8140 Debug: Caching connection for https://puppet4.domain.avtechpulse.com:8140 Debug: Closing connection for https://puppet4.domain.avtechpulse.com:8140 [root@karsh puppet]#
Versions: puppet-4.1.0-1.fc22.noarch puppet-server-4.1.0-1.fc22.noarch
We're receiving the same error trying to upgrade to 4.1.0-1, running puppet master with --trace identifies the offending line of code. #/usr/bin/ruby-mri /usr/bin/puppet master --no-daemonize --trace ... Error: Failed when searching for node bastion: Could not retrieve facts for bastion: undefined method `sanitize' for #<Hash:0x000000017c7e68> /usr/share/ruby/vendor_ruby/puppet/node.rb:103:in `fact_merge' /usr/share/ruby/vendor_ruby/puppet/indirector/node/plain.rb:17:in `find' /usr/share/ruby/vendor_ruby/puppet/indirector/indirection.rb:194:in `find' /usr/share/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb:109:in `block in find_node' /usr/share/ruby/vendor_ruby/puppet/util/profiler/around_profiler.rb:58:in `profile' /usr/share/ruby/vendor_ruby/puppet/util/profiler.rb:51:in `profile' /usr/share/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb:106:in `find_node' /usr/share/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb:145:in `node_from_request' /usr/share/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb:47:in `find' /usr/share/ruby/vendor_ruby/puppet/indirector/indirection.rb:194:in `find' /usr/share/ruby/vendor_ruby/puppet/network/http/api/indirected_routes.rb:134:in `do_find' /usr/share/ruby/vendor_ruby/puppet/network/http/api/indirected_routes.rb:48:in `block in call' /usr/share/ruby/vendor_ruby/puppet/context.rb:64:in `override' /usr/share/ruby/vendor_ruby/puppet.rb:223:in `override' /usr/share/ruby/vendor_ruby/puppet/network/http/api/indirected_routes.rb:47:in `call' /usr/share/ruby/vendor_ruby/puppet/network/http/route.rb:82:in `block in process' /usr/share/ruby/vendor_ruby/puppet/network/http/route.rb:81:in `each' /usr/share/ruby/vendor_ruby/puppet/network/http/route.rb:81:in `process' /usr/share/ruby/vendor_ruby/puppet/network/http/route.rb:87:in `process' /usr/share/ruby/vendor_ruby/puppet/network/http/route.rb:87:in `process' /usr/share/ruby/vendor_ruby/puppet/network/http/handler.rb:60:in `block in process' /usr/share/ruby/vendor_ruby/puppet/util/profiler/around_profiler.rb:58:in `profile' /usr/share/ruby/vendor_ruby/puppet/util/profiler.rb:51:in `profile' /usr/share/ruby/vendor_ruby/puppet/network/http/handler.rb:58:in `process' /usr/share/ruby/vendor_ruby/puppet/network/http/webrick/rest.rb:49:in `block in service' /usr/share/ruby/vendor_ruby/puppet/network/http/webrick/rest.rb:48:in `synchronize' /usr/share/ruby/vendor_ruby/puppet/network/http/webrick/rest.rb:48:in `service' /usr/share/ruby/webrick/httpserver.rb:138:in `service' /usr/share/ruby/webrick/httpserver.rb:94:in `run' /usr/share/ruby/vendor_ruby/puppet/network/http/webrick.rb:33:in `block (2 levels) in listen' /usr/share/ruby/webrick/server.rb:294:in `call' /usr/share/ruby/webrick/server.rb:294:in `block in start_thread'
It turns out that puppet requires SafeYAML::OPTIONS[:default_mode] = :unsafe this warning tipped me off: Called 'load_file' without the :safe option -- defaulting to safe mode. You can avoid this warning in the future by setting the SafeYAML::OPTIONS[:default_mode] option (to :safe or :unsafe). My very temporary solution: Modify /usr/share/ruby/vendor_ruby/puppet/indirector/yaml.rb directly and added "SafeYAML::OPTIONS[:default_mode] = :unsafe" to the top of the file.
That temporary override does fix the issue here too.
maybe rubygem-safe_yaml shouldn't be a prereq for puppet/puppet-server.
That does indeed fix the issue. I am still seeing this warning on the agent: # puppet agent --no-daemonize --onetime --logdest console Called 'load_file' without the :safe option -- defaulting to safe mode. You can avoid this warning in the future by setting the SafeYAML::OPTIONS[:default_mode] option (to :safe or :unsafe). Notice: Applied catalog in 0.35 seconds However it appears to work nontheless.
That workaround sort of fixed the issue, but not completely. For instance "puppet cert list" still has the same problem. It seems unfortunate to make puppet depend on safe_yaml only to effectively disable it right away by putting it in unsafe mode. Anyway, I now completely disabled it by commenting out the one line in /usr/share/ruby/vendor_ruby/puppet/vendor/require_vendored.rb (this is where safe_yaml is pulled in). It would be great if upstream could make puppet work with safe_yaml in safe mode, but in the mean time disabling safe_yaml is the way to make puppet work in Fedora.
I have started to see the error with the latest version of Fedora. These manifests ran fine a couple of weeks ago and still run correctly on RHEL 6.4 and RHEL 7. They ran correctly on the Fedora22 nodes until last week's dnf update. matt@aslan:54% uname -a Linux aslan.campbell.littlelionstudios.com 4.1.6-201.fc22.x86_64 #1 SMP Fri Sep 4 17:49:24 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux matt@aslan:55% cat /etc/redhat-release Fedora release 22 (Twenty Two) matt@aslan:56% rpm -qa puppet puppet-4.1.0-4.fc22.noarch matt@aslan:57% rpm -qa ruby ruby-2.2.3-44.fc22.x86_64 matt@aslan:58% sudo puppet agent -t Called 'load_file' without the :safe option -- defaulting to safe mode. You can avoid this warning in the future by setting the SafeYAML::OPTIONS[:default_mode] option (to :safe or :unsafe). Warning: Unable to fetch my node definition, but the agent run will continue: Warning: Error 400 on SERVER: Could not retrieve facts for aslan.campbell.littlelionstudios.com: undefined method `sanitize' for #<Hash:0x007f5c5c65b5e8> Info: Retrieving pluginfacts Info: Retrieving plugin Info: Loading facts Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed when searching for node aslan.campbell.littlelionstudios.com: Could not retrieve facts for aslan.campbell.littlelionstudios.com: undefined method `sanitize' for #<Hash:0x007f5c5c4d0638> Warning: Not using cache on failed catalog Error: Could not retrieve catalog; skipping run
Fedora 22 changed to end-of-life (EOL) status on 2016-07-19. Fedora 22 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen this bug against that version. If you are unable to reopen this bug, please file a new report against the current release. If you experience problems, please add a comment to this bug. Thank you for reporting this bug and we are sorry it could not be fixed.