Some additional information.

I can confirm that the reason that 
server_role = Facter.value(:hostname)
if server_role[0,1] != "a"

isn't true for servers who's names do start with a is directly related to 
settings in the location_code.rb file
if I rem out everything in server_role except 
server_role = Facter.value(:hostname)
the hostname is printed with the first 2 or 4 characters removed as shown 
in location_code.erb
if ip_address.between?(104127100, 104127255)
        location_code.slice!(0,2)
    else
        location_code.slice!(0,4)
    end
If I change the numbers from 2 to 3, or 4 to 5 for example, the hostname is 
different on my remarked server_role.erb file

I would assume that the line in server_role.erb

server_role = Facter.value(:hostname)

would get the proper hostname from Facter, but it doesn't appear to.

Any ideas on why?



On Friday, October 21, 2016 at 3:05:06 PM UTC-5, aar...@gmail.com wrote:
>
> I have two custom facts and I have put each file in the directory for a 
> single module.  Both facts get loaded onto my clients.
>
> The problem I am having is that each fact runs successfully when it is by 
> itself, but when both run at the same time, the results aren't as expected.
>
> To test, I rename one fact as *.rb.bak, and then I get proper results.  
> Switch to the other fact, again, proper results.  Remove .bak so they both 
> run, results are wrong.
>
> Here are my .rb files.
>
> All of my servers start with the letter a and have either an aX or aXXX 
> which describes their physical location.  All of the servers end with 5 
> characters that describe the network they are on.  The remaining characters 
> describe what the server does.
>
> All of my workstations start with a #.
>
> What seems to happen, is that when both facts are running, none of my 
> servers start with "a" so all of my servers show up as workstations.
>
> It appears that 'location_code.slice! seems to run, so the prefix of my 
> hostname is gone and the first letter appears to be the part of the 
> hostname that describes the servers function.
>
> To test, I changed "a" in my code to "f" and my file server had the proper 
> server_role of file.
>
> I don't understand why this happens as my variables are different between 
> the two script
>
> I appreciate any assistance.
>
> require 'facter'
>
> Facter.add(:location_code) do
>   setcode do
>     address = Facter.value(:ipaddress).tr('.', '')
>     address = address.to_i
>     location_code = Facter.value(:hostname)
>       if address.between?(104127100, 104127255)
>         location_code.slice!(0,2)
>       else
>         location_code.slice!(0,4)
>       end
>   end
> end
>
>
>
>
> require 'facter'
>
> Facter.add(:server_role) do
>   setcode do
>     ip_address = Facter.value(:ipaddress).tr('.', '')
>     ip_address = ip_address.to_i
>     server_role = Facter.value(:hostname)
>     if server_role[0,1] != "a"
>       server_role = 'workstation'
>     else
>       if ip_address.between?(104127100, 104127255)
>         server_role.slice!(0,2)
>     else
>         server_role.slice!(0,4)
>     end
>     server_role = server_role[0..-6]
>     end
>   end
> end
>
>
>

-- 
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 puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/3caf42f8-bd4a-4c38-aebc-d88ba0a6360b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to