1

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?

Machoke
  • 115
  • 8

1 Answers1

4

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 /etc/puppet/puppet.conf:

[main]
bindaddress = ::

which by default will bind to a dual stack socket and accept IPv6 and IPv4 connections from anywhere.

Michael Hampton
  • 244,070
  • 43
  • 506
  • 972
  • Oh!! To show how that my Google fu has failed! Thank you that worked! Now I got the following, does that mean it is IPv6 only? netstat -n -l | grep 8140 \n tcp6 0 0 :::8140 :::* LISTEN – Machoke Apr 27 '15 at 03:57
  • 1
    Nope, it's a dual stack socket and accepts IPv4 and IPv6 connections. – Michael Hampton Apr 27 '15 at 04:07
  • @MichaelHampton Is it even possible to tell the difference between a dual stack socket and a v6-only socket from the netstat output? – kasperd Apr 27 '15 at 22:08
  • @kasperd As far as I can tell, netstat doesn't distinguish. I simply tested them with netcat. :) – Michael Hampton Apr 28 '15 at 04:44