-- 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.