class icecast( $config_content = lookup('icecast::config_content', undef, undef, false), $config_source = [ "puppet:///modules/site_icecast/${::hostname}.conf", "puppet:///modules/icecast/icecast.conf" ], ) { package { 'icecast2': ensure => present, } file { '/etc/icecast2/icecast.xml': ensure => present, owner => 'icecast2', group => 'icecast', mode => '0660', require => Package['icecast2'], notify => Service['icecast2'], } service { 'icecast2': ensure => running, } if $config_content { File['/etc/icecast2/icecast.xml']{ content => $config_content, } } else { File['/etc/icecast2/icecast.xml']{ source => $config_source, } } }