Damian Zaremba
2013-May-13 03:00 UTC
[Puppet Users] Monkey patching puppet agent to support dynamic srv_domain
Hi, I''m currently currently looking at deploying puppet using multiple masters in a ''stateless'' manner (dedicated ca_server, multiple masters with SRV based access, git based config deploys, no puppetdb - for now at least). The deployment essentially partitions into 3 regions - each with a srv_domain - and has multiple sites under each region. For the most part this works perfectly with multiple SRV records weighted accordingly, however for devices that can migrate between regions (such as laptops) I still haven''t found a good solution to keep access local. Based upon the /16 network a device resides in I can tell which region it is suppose to go to, as each site has a specific ip block routed to it. So here''s the question - is it possible to monkey patch puppet agent (via a plugin or such - I don''t want to ship a fork of the code to clients) to dynamically lookup srv_domain during a run? I know it''s possible to do this via logic in puppet and write out the config via a template - something I''m doing for the rest of the file. The downside to this is puppet will complete an entire run before it switches to its local region - any options around forcing that change first and cleanly exiting/re-running I''d be happy to investigate. Due to external limitations (such as running your internal DNS on AD integrated windows servers) I can''t do site/region specific DNS entries, so really need to keep this logic in puppet. Any thoughts on how to accomplish this would be hugely appreciated! :) - Damian -- 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+unsubscribe@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.