Using host resources
It's not always practical or convenient to use DNS to map your machine names to IP addresses, especially in cloud infrastructures where those addresses may be changing all the time. However, if you use entries in the /etc/hosts
file instead, you then have the problem of how to distribute these entries to all machines and keep them up to date.
Here's a better way to do it; Puppet's host resource type controls a single /etc/hosts
entry, and you can use this to map a hostname to an IP address easily across your whole network. For example, if all your machines need to know the address of the main database server, you can manage it with a host
resource.
How to do it…
Follow these steps to create an example host
resource:
Modify your
manifests/nodes.pp
file as follows:node 'cookbook' { host { 'bitfieldconsulting.com': ensure => present, ip => '109.74.195.241', target => '/etc/hosts', } }
Run Puppet:
ubuntu@cookbook:~/puppet$ papply Notice: /Stage[main...