Re: [Puppet Users] Determining if hiera (or any function) is installed on a node

Gary Larizza
Tue, 17 Apr 2012 19:14:51 -0000

Hey Geoff,

I see that as two separate steps (Is Hiera enabled and is Hiera
configured).  I think the function satisfies the former, but you might want
to write your own check for the latter (as each person probably interprets
''configured'' differently).  You could do a check like:

if function_available(''hiera'') and
hiera(''hiera_enabled'', false) {
  <do something with hiera>
} else {
  <do something without hiera>
}

This would do a hiera lookup for a parameter ''hiera_enabled''
that could be
set in your common/global.yaml file (while defaulting to false if it''s
not
found).



On Tue, Apr 17, 2012 at 12:09 PM, Geoff Davis <gadavis@ucsd.edu> wrote:

> I''ve found a potential issue, but I''m not sure if this is
within the scope
> of function_available or not.
>
> The vagrant basebox I''m using actually does ship with
puppet-hiera, but
> there''s no /etc/puppet/hiera.yaml
>
> Thus, even though function_available(''hiera'') returns
true, the function
> isn''t actually usable:
>
> Hiera config file /etc/puppet/hiera.yaml not readable at
> /tmp/vagrant-puppet/modules-0/staging/manifests/init.pp:31 on node
> centos-6-vagrant.vagrantup.com
>
> Is there a way to check whether the function is actually usable as well?
>
> Geoff Davis
> Scripps Institution of Oceanography
> gadavis@ucsd.edu, (858) 822-5756
>
>
>
> On Apr 17, 2012, at 11:56 AM, Ken Barber wrote:
>
> I''m going to review this now. Its destined for master, so someone
from
> the release team can probably comment on the next major release
> schedule for stdlib.
>
> On Tue, Apr 17, 2012 at 7:35 PM, Geoff Davis <gadavis@ucsd.edu>
wrote:
>
> That''s what I''m looking for. I''ll fold in that
branch into my testing until
>
> it goes mainline.
>
>
> Any ETA on it going mainline?
>
>
>
> On Apr 17, 2012, at 11:14 AM, Nigel Kersten wrote:
>
>
>
>
> On Tue, Apr 17, 2012 at 11:08 AM, Geoff Davis <gadavis@ucsd.edu>
wrote:
>
>
> I''m doing some work on module development inside of a Vagrant VM
of CentOS
>
> 6.2. This VM has the community version of Puppet installed (2.7.13 I
> think),
>
> but that doesn''t include Hiera by default.
>
>
> My module is dependent on Nan Liu''s puppet-staging module, which
requires
>
> hiera. This puts me into the proverbial chicken and egg problem of not
>
> having a puppet function but also not being able to install it with puppet,
>
> since my manifests don''t compile due to the hiera function not
being
>
> available.
>
>
> Right now, I''m doing a manual bootstrap of a new vagrant box with
a
>
> dedicated Puppet manifest that calls another one of Nan''s modules,
>
> puppet-hiera, to install hiera on the Vagrant VM, but I''d rather
use the
>
> same manifest for both bootstrap and module testing. I don''t care
if it
>
> takes two passes to converge, I just don''t want a freshly booted
Vagrant
> box
>
> to complain because it can''t compile it''s manifest.
>
>
> Is there a relatively foolproof way to determine if Puppet has a function
>
> available to it or not? Is there a "has_function" function
available in the
>
> Puppet DSL, or is there a check that I could roll into a fact that works
>
> cross-platform and between Puppet Enterprise and Community?
>
>
>
> There''s a pending pull request in the stdlib module for adding a
>
> function_available function
>
>
> https://github.com/puppetlabs/puppetlabs-stdlib/pull/59
>
>
>
>
> --
>
> You received this message because you are subscribed to the Google Groups
>
> "Puppet Users" group.
>
> To post to this group, send email to puppet-users@googlegroups.com.
>
> To unsubscribe from this group, send email to
>
> puppet-users+unsubscribe@googlegroups.com.
>
> For more options, visit this group at
>
> http://groups.google.com/group/puppet-users?hl=en.
>
>
>
> --
>
> You received this message because you are subscribed to the Google Groups
>
> "Puppet Users" group.
>
> To post to this group, send email to puppet-users@googlegroups.com.
>
> To unsubscribe from this group, send email to
>
> puppet-users+unsubscribe@googlegroups.com.
>
> For more options, visit this group at
>
> http://groups.google.com/group/puppet-users?hl=en.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To post to this group, send email to puppet-users@googlegroups.com.
> To unsubscribe from this group, send email to
> puppet-users+unsubscribe@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/puppet-users?hl=en.
>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To post to this group, send email to puppet-users@googlegroups.com.
> To unsubscribe from this group, send email to
> puppet-users+unsubscribe@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/puppet-users?hl=en.
>



--

Gary Larizza
Professional Services Engineer
Puppet Labs