-- 
Frank


On Friday, September 28, 2012 at 2:35 PM, jcbollinger wrote:

> 
> 
> On Friday, September 28, 2012 6:05:54 AM UTC-5, ureal frank wrote:
> > Hi, 
> > 
> > I've seen some blog posts about adding server roles to Puppet.
> > 
> > Some of them with this fact snippet:
> > 
> > if File.exists?("/etc/roles.txt")
> > File.readlines("/etc/roles.txt").each do |line|
> > if line =~ /^(.+)=(.+)$/
> > fact  = $1
> > value = $2
> > 
> > Facter.add(fact) do
> > # confine :kernel => "Linux"
> > setcode {value}
> > end
> > end
> > end
> > end
> > 
> > 
> > 
> > Since I have both linux and windows boxes backed with Puppet, it is correct 
> > to add the "confine :kernel => "Linux"" next to "Facter.add(fact) and 
> > replicate the whole block changing this "confine :kernel to "Windows" and 
> > the path (to match window paths c:\foo)?
> > 
> > Is this the right approach?
> 
> 
> No. The code you presented tests the Unix-style path well before it gets to 
> the point where your confine enters the picture.  If the file was found at 
> all then you do not need to 'confine' to Linux (unless you need to 
> distinguish that case from other Unixes, such as OS X or Solaris).
> 
> You could duplicate the code and change the path (still not needing a 
> 'confine'), but if I were writing this I would probably test the "kernel" or 
> "os" fact at the start to determine which path to look for in the first 
> place, then use just one fact declaration (still with no need for a 
> 'confine'). 
 
Ok, it makes sense. Then for me to use $$::kernel variable on this fact 
definition, I must require 'facter' first or I just use it in a conditional 
clause like this?

if $::kernel = "linux" then
# linux fact code
else
# windows fact code
end 
 

Frank

> 
> 
> John
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Puppet Users" group.
> To view this discussion on the web visit 
> https://groups.google.com/d/msg/puppet-users/-/q1jyUOogM0cJ.
> To post to this group, send email to puppet-users@googlegroups.com 
> (mailto:puppet-users@googlegroups.com).
> To unsubscribe from this group, send email to 
> puppet-users+unsubscr...@googlegroups.com 
> (mailto:puppet-users+unsubscr...@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+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to