So I have a RHEL 7 server on an internal network with IPv6, and I am able to SSH into it via IPv6 and it is also serving DNS to other hosts over IPv6.
I have noticed that puppet master bind to IPv4 only:
$ netstat -n -l | grep 8140 tcp 0 0 0.0.0.0:8140 0.0.0.0:* LISTEN
A quick Google reveals that it is most likely that ruby on RHEL 7 are compiled without IPv6 support.
So I just get it up and running with IPv4 for now.
Having everything else running on IPv6 though, I wonder what’s the best way to get puppet master to listen on IPv6? Can I install ruby from the upstream rpms with IPv6 turned on? Or install a separate IPv6 enabled ruby environment via rvm, but then how would I get puppet to use the one provided by rvm?
In Puppet Enterprise the puppetmaster should be listening on a dual stack IPv6/IPv4 socket by default. Though PE has some other IPv6-related brokenness (my site) you’ll have to work around.
In open source Puppet, such as you may have obtained via EPEL, you need to set the
bindaddress explicitly in the
[main] section of
[main] bindaddress = ::
which by default will bind to a dual stack socket and accept IPv6 and IPv4 connections from anywhere.
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.