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:
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.