Issue #1866 has been updated by Tom Fine.
No. SRV records will not suffice. In larger institutions like mine, DNS is a bureaucracy outside of our control. I'm not sure it's possible for me to set up SRV records at all. Even if it is, I know that I can't update them at my convenience. We'd also like puppet to continue to work in the face of DNS failures. And we can't rely on fallback to a default name of "puppet", as that name was taken for historical reasons. Even without the bureaucracy, we have more subgroups organizationally than we have subdomains, so our SRV records would end up in conflict with those of other groups within our domain that would also want service records for puppet. You can't beat the simplicity of a list of hosts in a config file that you can update centrally using puppet as long as at least one of your existing puppet servers is up. My vote would be that this is a pure failover list. Options for roundrobin or such might help others, but for me, if I wanted load balancing I'd use puppet to deliver different server list configurations to different subnets or groups or whatever. ---------------------------------------- Feature #1866: Support for specification of multiple servers https://projects.puppetlabs.com/issues/1866#change-70608 Author: Ian Turner Status: Investigating Priority: Normal Assignee: Category: plumbing Target version: 3.x Affected Puppet version: 0.24.7 Keywords: load balanced, multiple masters, high availability Branch: At the moment it is only possible to tell puppetd about one puppetmaster: Engaging multiple servers requires load balancing equipment such as that employed by the reporter of Feature #1557. The simplest (for administrators) way to address this issue is to enable round-robin server access within puppetd itself. This is the technique employed extremely effectively in openvpn. I propose two configuration changes: The "server" directive should accept a comma-seperated list of servers, and a new "randomserver" boolean directive indicates how the server list is traversed. Pseudocode to be executed at the start of each puppet run: <pre> # if randomserver and lastserver = NIL # serverlist <- rotateleft(serverlist, rand(length(serverlist)) # nextserver <- NIL # trialcount <- length(serverlist) # loop until nextserver ≠NIL # trialserver <- first(serverlist) # if retrievecatalogok(trialserver) # nextserver <- trialserver # else # server <- rotateleft(server, 1) # trialcount <- trialcount - 1 # if trialcount = 0 # error("no working servers") # lastserver <- nextserver </pre> -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" 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-bugs?hl=en.
