class nodo::subsystem::hosts(
  $custom = hiera('nodo::subsystem::hosts::custom', false)
) {
  # Sometimes might be useful to manage the whole
  # hosts file, see http://projects.puppetlabs.com/issues/10704
  case $custom {
    true: {
      file { '/etc/hosts':
        ensure => present,
        owner  => root,
        group  => root,
        mode   => 0640,
        source => "puppet:///modules/site_nodo/hosts/${::fqdn}",
      }
    }
    default: {
      host { "${::hostname}":
        ensure       => present,
        ip           => "${::ipaddress}",
        host_aliases => [ "${::fqdn}" ],
      }
    
      host { "localhost":
        ensure => present,
        ip     => "127.0.0.1",
      }
    
      host { "ip6-localhost":
        ensure       => present,
        ip           => "::1",
        host_aliases => [ "ip6-loopback" ],
      }
    
      host { "ip6-localnet":
        ensure => present,
        ip     => "fe00::0",
      }
    
      host { "ip6-mcastprefix":
        ensure => present,
        ip     => "ff00::0",
      }
    
      host { "ip6-allnodes":
        ensure => present,
        ip     => "ff02::1",
      }
    
      host { "ip6-allrouters":
        ensure => present,
        ip     => "ff02::2",
      }
    
      host { "ip6-allhosts":
        ensure => present,
        ip     => "ff02::3",
      }
    }
  }
}