In this case it is hiera. Can you please check: - that there is no global hiera.yaml file in /etc/puppetlabs/puppet/hiera.yaml or, that the data paths mentioned in that file are empty - that node is the top level environment in your environment hiera.yaml file (/etc/puppetlabs/code/environment/<environment>/hiera.yaml - that your Puppet code changes are done in production environment and not within a feature branch or: if you use a feature branch: that the data fir enabling/disabling the flag is also in environment hiera data
Can you run the puppet lookup command again using the ‘--explain’ parameter? Hth, Martin > On 28. Sep 2020, at 15:18, [email protected] <[email protected]> wrote: > > Thanks again Martin, > > I've changed the code as per recommended. However, the same issue still > persists. I'm starting to think that the issue is not code related but lies > elsewhere > > # puppet agent --no-daemonize --onetime --verbose > Info: Using configured environment 'production' > Info: Retrieving pluginfacts > Info: Retrieving plugin > Info: Retrieving locales > Info: Loading facts > Error: Could not retrieve catalog from remote server: Error 500 on SERVER: > Server Error: Evaluation Error: Error while evaluating a Resource Statement, > Class[Grubipv6disable]: expects a value for parameter 'enable' (file: > /etc/puppetlabs/code/environments/production/manifests/site.pp, line: 12, > column: 3) on node lhcsrvprdidm02.fixnetix.com > Info: Using cached catalog from environment 'production' > Info: Applying configuration version '1601218290' > Notice: Applied catalog in 1.95 seconds > > I've checked if a lookup checks-out ok: > > # puppet lookup --node lhcsrvprdidm02.fixnetix.com grubipv6disable::enable > --- false > > Thanks, > Dan. > > > > On Monday, September 28, 2020 at 11:54:42 AM UTC+1 Martin Alfke wrote: > Hi Dan, > > I would write the grubipv6disable class in another way: > > class grubipv6disable ( > Boolean $enable, > ) { > if $enable { > contain grubipv6disable::config > } > } > > And keep the grubipv6disable::config class as is: > > class grubipv6disable::config ( > ){ > > if $facts['os']['release']['major'] =~ /7/ { > exec { 'grub2_ipv6_disable': > command => '/usr/sbin/grubby --update-kernel=ALL --args=ipv6.disable=1', > unless => '/usr/sbin/grubby --info=ALL | /usr/bin/grep ipv6' > } > } else { > notice ('Assuming RHEL 6.x thus taking no action') > } > } > > Parameters, like variables, are always local to a class. > > Best, > Martin > > > >> On 28. Sep 2020, at 12:03, [email protected] <http://gmail.com/> >> <[email protected] <applewebdata://70E5C94B-E8D9-41C0-AB2A-CF8286814643>> >> wrote: >> > >> Thanks for that Martin, >> >> I seem to have unearthed a different issue: >> >> # puppet agent --no-daemonize --onetime --verbose >> Error: Could not retrieve catalog from remote server: Error 500 on SERVER: >> Server Error: Evaluation Error: Error while evaluating a Resource Statement, >> Class[Grubipv6disable]: expects a value for parameter 'enable' (file: >> /etc/puppetlabs/code/environments/production/manifests/site.pp, line: 12, >> column: 3) on node lhcsrvprdidm02.fixnetix.com >> <http://lhcsrvprdidm02.fixnetix.com/> >> >> # pwd >> /etc/puppetlabs/code/environments/production/modules/grubipv6disable >> # more manifests/init.pp >> class grubipv6disable ( >> Boolean $enable, >> ) { >> contain grubipv6disable::config >> } >> >> # more manifests/config.pp >> class grubipv6disable::config ( >> Boolean $enable = true, >> ){ >> if $enable { >> if $facts['os']['release']['major'] =~ /7/ { >> exec { 'grub2_ipv6_disable': >> command => '/usr/sbin/grubby --update-kernel=ALL >> --args=ipv6.disable=1', >> unless => '/usr/sbin/grubby --info=ALL | /usr/bin/grep ipv6' >> } >> } else { >> notice ('Assuming RHEL 6.x thus taking no action') >> } >> } >> } >> >> # pwd >> /etc/puppetlabs/code/environments/production/data >> # more nodes/lhcsrvprdidm02.fixnetix.com.yaml >> --- >> grubipv6disable::enable: false >> >> Seems hiera is not being read. >> >> Any further help you can provide would be appreciated >> >> Thanks, >> Dan. >> On Friday, September 18, 2020 at 12:43:26 PM UTC+1 Martin Alfke wrote: >> Add a parameter to grubipv6disable class which controls the internal >> behaviour. >> https://puppet.com/docs/puppet/6.17/lang_classes.html#class-parameters-and-variables >> >> <https://puppet.com/docs/puppet/6.17/lang_classes.html#class-parameters-and-variables> >> >> e.g. >> >> # modules/grubipv6disable/manifests/init.pp >> class grubipv6disable ( >> Boolean $enable = true, >> ){ >> if $enable { >> # add here the code from the class. >> } >> } >> >> Now you add hiera.yaml to your control-repo and add node specific data. >> https://puppet.com/docs/puppet/6.17/hiera_intro.html >> <https://puppet.com/docs/puppet/6.17/hiera_intro.html> >> >> e.g. >> data/nodes/<nodename>.yaml >> --- >> grubipv6disable::enable: false >> >> Hth, >> Martin >> >> >> >>> On 17. Sep 2020, at 19:19, [email protected] <http://gmail.com/> >>> <[email protected] <>> wrote: >>> >> >>> Hello experts, >>> >>> I apply all my current classes like so: >>> >>> # cat site.pp >>> >>> node default { >>> class { 'selinux': >>> mode => 'permissive', >>> type => 'targeted', } >>> class { 'commonpackages': } >>> class { 'polkit': } >>> class { 'libstoragemgmt': } >>> class { 'rngd': } >>> class { 'gssproxy': } >>> class { 'smartd': } >>> class { 'firewalld': } >>> class { 'grubipv6disable': } >>> class { 'grubrootpasswd': } >>> class { 'grubcrash': } >>> class { 'logrotate': } >>> class { 'htop': } >>> class { 'vim': } >>> class { 'yum': } >>> class { 'yumlocalrepo': } >>> class { 'sysctl': } >>> class { 'sysconfig': } >>> class { 'bashrc': } >>> class { 'vault': } >>> class { 'useradd': } >>> class { 'crontab': } >>> class { 'modprobe': } >>> class { 'rsyslogd': } >>> class { 'sudoers': } >>> class { 'motd': } >>> class { 'pam': } >>> class { 'issue': } >>> class { 'issuenet': } >>> class { 'limits': } >>> class { 'timezone': } >>> class { 'profiled': } >>> class { 'pulpconsumer': } >>> class { 'resolver': } >>> class { 'aide': } >>> class { 'autofs': } >>> class { 'vmtoolsd': } >>> class { 'ntpd': } >>> class { 'postfix': } >>> class { 'auditd': } >>> class { 'sshd': } >>> class { 'idmclient': } >>> } >>> >>> However, it's now become apparent that I need to exclude the >>> grubipv6disable from some nodes (all have idm0 in their hostname). >>> >>> What is the best way (or the less complicated) to achive this? >>> >>> Thanks in advance. >>> Dan. >>> >> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Puppet Users" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to [email protected] <>. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/puppet-users/e0226cb0-a8d9-4767-afa7-093c89358063n%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/puppet-users/e0226cb0-a8d9-4767-afa7-093c89358063n%40googlegroups.com?utm_medium=email&utm_source=footer>. >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Puppet Users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] >> <applewebdata://70E5C94B-E8D9-41C0-AB2A-CF8286814643>. > >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/puppet-users/b168cfbc-a37a-4ecd-b394-223de8580440n%40googlegroups.com >> >> <https://groups.google.com/d/msgid/puppet-users/b168cfbc-a37a-4ecd-b394-223de8580440n%40googlegroups.com?utm_medium=email&utm_source=footer>. > > > -- > You received this message because you are subscribed to the Google Groups > "Puppet Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <mailto:[email protected]>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/puppet-users/6ce33b24-d9e3-4c5d-bb9f-9295f900db36n%40googlegroups.com > > <https://groups.google.com/d/msgid/puppet-users/6ce33b24-d9e3-4c5d-bb9f-9295f900db36n%40googlegroups.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/2AA1D702-AB95-4D68-99D1-0DCF45850D79%40gmail.com.
