class mpd { package { 'mpd': ensure => installed, } service { 'mpd': ensure => running, enable => true, hasstatus => false, pattern => '/usr/bin/mpd', require => Package['mpd'], } file { '/etc/mpd.conf': ensure => present, owner => mpd, group => audio, mode => 0640, notify => Service['mpd'], source => [ "puppet:///modules/site-mpd/$hostname.conf", "puppet:///modules/mpd/mpd.conf" ], } } class mpd::client { package { [ 'mpc', 'ncmpc', 'ncmpcpp', 'mpdtoys' ]: ensure => installed, } } class mpd::all { include mpd include mpd::client }