Search code examples
puppethiera

How to configure bind IP with Hiera


I'm using something like role/profile pattern to describe my infrastructure with Puppet 3.x and Hiera.

Now stumbled on a problem, how should I configure something like the IP address that something will listen given that I have multiple IPs and each application(nginx hosts) should be segregated by IP.

I have some ideas on how to do that by don't know if there is a de facto solution or if I should just pick one and live my life:

  • Use Hiera to configure it, using variable interpolation($::ipaddress_eth0, $ipaddress_eth1)
  • Hardcode which network interface each application uses direct in the manifest
  • Configure it on the profile
  • ... ??

Solution

  • I would suggest using the first method since you are able to easily override the IP configuration everywhere and everytime on host / application / environment basis. That means you are extremely flexible when it comes to detailed host specific changes.

    Keep in mind that variable interpolation in hiera is done by %{::foobar} instead of ${::foobar} like it's done in the manifests.