I use the IP address to generate a 32bit integer for the server_id for
my Mysql configs.
server_id = <%= ipaddress.split('.').inject(0) {|total,value| (total
<< 8 ) + value.to_i} %>
Would something like that work in your case?
Ramin
On Apr 15, 7:30 am, Rob McBroom <[email protected]> wrote:
> Details below, but the essential problem is this: I need to take a list of
> hostnames and assign an integer for each one and ensure that the integer “is
> non-negative and is no more than three decimal digits in length”. I’d prefer
> that the each hostname lead to the same integer every time. I’ve never
> written anything in Ruby before yesterday, so anyone with more experience
> have any ideas?
>
> Boring details: I’m trying to set up replication between LDAP servers. Each
> one has to have a unique integer assigned. Details for all of our nodes are
> stored in LDAP, so when the template is applied to a node, I can have it get
> a list of servers that it should be syncing with by searching for something
> like
> “(&(classification=ldap)(environment=#{environment})(!(status=inactive*)))”.
>
> Things I’ve considered so far:
>
> 1. Just keep a counter as you loop through the list of servers and use that
> as the ID. The problem is, if I remove a server from the list (which I am
> planning to do soon), the numbers will be reassigned and depending on when
> each server checks in with the Puppetmaster, there’s a good chance that two
> servers could think they have the same ID.
>
> 2. Use regex replacements on the hostname. Our hostnames are all in the
> format x-xxxx-ldap-01. I could just take the integer part of the name and
> then add something to it based on the value of environment, but then I’d have
> to assume the hostname format will never change. Political nonsense is common
> around here, so I don’t want to rely on that.
>
> What I really need is something like an MD5 sum of each hostname, but the
> resulting numbers are obviously way too big.
>
> Thanks.
>
> --
> Rob McBroom
> <http://www.skurfer.com/>
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.