That sounds about right, I just didn't know if I could use that variable in
a function. I'll just go away and play rather than post more!

On Wed, Jan 6, 2010 at 1:17 PM, Dan Bode <[email protected]> wrote:

>
>
> On Wed, Jan 6, 2010 at 10:09 AM, Ashley Penney <[email protected]> wrote:
>
>> My only concern about this is that functions evaluate on the server,
>> right?
>
>
> right
>
>
>> The only place I change ip's is in a variable ($ip) in nodes.pp for each
>> node.
>
>
> yes, this variable should represent the desired state of ipaddress.
>
>
>> I do export a host{} entry for each box to storeconfig but I don't know if
>> I can rely on that being updated in time for the function to look.
>
>
> I don't follow what you mean here. The function wouldn't use the exported
> resource, it would just use $ip. (unless there is something I am not
> understanding)
>
>
>>
>>
>
>> On Wed, Jan 6, 2010 at 1:00 PM, Dan Bode <[email protected]> wrote:
>>
>>>
>>>
>>> On Wed, Jan 6, 2010 at 9:55 AM, Ashley Penney <[email protected]> wrote:
>>>
>>>> I'll give this a try, I've never used or written a function so it's a
>>>> good learning exercise.
>>>>
>>>
>>> I am sure you have used at least 2 functions, template and include :)
>>>
>>>>
>>>> My alternative plan was to make an awful exec{} that ran after the
>>>> network define did that would do a 'sed' on the /etc/hosts file to fix
>>>> puppet's ip, which is terrible. :)
>>>>
>>>>
>>>> On Wed, Jan 6, 2010 at 12:42 PM, Dan Bode <[email protected]>wrote:
>>>>
>>>>> Hi Ashley,
>>>>>
>>>>> since you are re-ip-ing machines to a different subnet, then I assume
>>>>> that you are maintaining the IP address for every node on the puppet 
>>>>> server?
>>>>>
>>>>> The problem with facts here is that you are determining the IPaddress
>>>>> of the puppet master based on what the IP is as opposed to what it should 
>>>>> be
>>>>> (after the puppet run). I would recommend using a function instead.
>>>>>
>>>>>
>>>>>     host { "puppet":
>>>>>         ensure => "present",
>>>>>         ip => get_puppet_master($ip),
>>>>>     }
>>>>>
>>>>> and then move the fact logic to this function.
>>>>>
>>>>> hope this helps,
>>>>>
>>>>> Dan
>>>>>
>>>>> On Wed, Jan 6, 2010 at 8:04 AM, Ashley Penney <[email protected]>wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I've a fairly odd network setup and I keep running into a minor but
>>>>>> irritating issue.  We have various subnets and depending on which subnet 
>>>>>> you
>>>>>> are on you have to contact puppet by different IPs.  I have various
>>>>>> workarounds for this and I build a /etc/hosts on each box with an entry 
>>>>>> for
>>>>>> 'puppet' with the correct IP.  This is currently done via a fact as 
>>>>>> follows:
>>>>>>
>>>>>> Facter.add("puppetip") do
>>>>>>     setcode do
>>>>>>
>>>>>>         result = case Facter["ipaddress"].value
>>>>>>             when /10.241.209/: "10.241.209.118"
>>>>>>             else "140.247.200.118"
>>>>>>         end
>>>>>>
>>>>>>         result
>>>>>>     end
>>>>>> end
>>>>>>
>>>>>> Then I have an entry in hosts.pp that reads:
>>>>>>
>>>>>>     host { "puppet":
>>>>>>         ensure => "present",
>>>>>>         ip => "$puppetip",
>>>>>>     }
>>>>>>
>>>>>> This works great except in cases where I have to re-ip a machine to a
>>>>>> different subnet (which happens constantly for reasons too depressing to
>>>>>> describe).  In this case when my defines that update the network run they
>>>>>> are unable to update the /etc/hosts entry because the facter stuff is
>>>>>> evaluated at the start of the run.  My host then changes IP and cannot
>>>>>> recontact puppet to continue.  I have to ssh in and manually change
>>>>>> /etc/hosts and then run puppet again.
>>>>>>
>>>>>> This irritates the hell out of me, but I can't think of another puppet
>>>>>> solution for this.  I can't rely on split dns (or any dns, it's broken 
>>>>>> and
>>>>>> not ran by me) so that's not an option.  Anyone have any ideas how I 
>>>>>> could
>>>>>> work around this?
>>>>>>
>>>>>> --
>>>>>> 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]<puppet-users%[email protected]>
>>>>>> .
>>>>>> 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 [email protected].
>>>>> To unsubscribe from this group, send email to
>>>>> [email protected]<puppet-users%[email protected]>
>>>>> .
>>>>> 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 [email protected].
>>>> To unsubscribe from this group, send email to
>>>> [email protected]<puppet-users%[email protected]>
>>>> .
>>>> 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 [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected]<puppet-users%[email protected]>
>>> .
>>> 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 [email protected].
>> To unsubscribe from this group, send email to
>> [email protected]<puppet-users%[email protected]>
>> .
>> 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 [email protected].
> To unsubscribe from this group, send email to
> [email protected]<puppet-users%[email protected]>
> .
> 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 [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.

Reply via email to