Hi Garrett,
During a Puppet run, I can see it modifying the local copy of the
videocard.rb on the client, when I've modified it. It just doesn't set the
fact.
I'll try Facter::Util::Resolution and see if that gets any better results.
Thanks,
Cam
On Friday, 6 January 2017 01:59:42 UTC, Garrett Honeycutt wrote:
>
> On 1/5/17 6:27 AM, Cam Mac wrote:
> > Hi,
> >
> > I'm trying to get videocard information into facter for installation of
> > drivers. I've been able to
> > get to the point of getting it to work in ruby, but not in Puppet. One
> > thing I need to do is
> > remove non-word characters, such as brackets, hash symbols, etc, as I
> > run a grep command
> > in my Puppet manifest which doesn't work when certain special characters
> > are present (apart from a comma).
> >
> > This is what I have so far:
> >
> > require 'facter'
> >
> > Facter.add("videocard") do
> > confine :kernel => :linux
> > ENV["PATH"]="/bin:/sbin:/usr/bin:/usr/sbin"
> > setcode do
> > ctrl = []
> > lspciexists = system "/bin/bash -c 'which lspci >&/dev/null'"
> > if $?.exitstatus == 0
> > output = %x{lspci}
> > output.split("\n").each {|s|
> > if s =~ /VGA\s+compatible\s+controller/
> > s.gsub!(/(\W)/, " ").gsub!(/\s+/," ")
> > ctrl << s
> > end
> > }
> > end
> > controllers.join(',')
> > end
> > end
> >
> > What am I doing wrong here?
> >
> > Thanks for any help,
> >
> > -Cam
> >
>
> Hi Cam,
>
> I have not tested the above code, though you say it works in Ruby and
> not Puppet, so guessing you have an issue with where the code is on disk
> or missing some steps in the process.
>
> Ensure that this code is in
> $modulepath:/<module>/lib/facter/videocard.rb. You can remove the
> 'require facter' line. Then run the puppet agent so that pluginsync puts
> the code in the right place. Now run `facter -p videocard` and you
> should see your output.
>
> Here's an example[1] of a module with a fact that is similar to what you
> are doing. Notice it uses Facter::Util::Resolution.which instead of
> system.
>
> Here's an example[2] of how to write unit tests for your new fact.
>
> [1] -
>
> https://github.com/ghoneycutt/puppet-module-ssh/blob/master/lib/facter/ssh.rb
>
> [2] -
>
> https://github.com/ghoneycutt/puppet-module-ssh/blob/master/spec/unit/facter/ssh_spec.rb
>
>
> Best regards,
> -g
>
> --
> Garrett Honeycutt
> @learnpuppet
> Puppet Training with LearnPuppet.com
> Mobile: +1.206.414.8658
>
--
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/f3f24c08-46f9-4763-99dd-6016fd728b82%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.