# copyright koumbit.org # Licence: GPL class cups::server { package { "cupsys": ensure => "installed" } file { "/etc/cups/cupsd.conf": source => "puppet:///cups/cupsd.conf", ensure => present, require => Package["cupsys"], owner => "root", group => "root", mode => "644", } # service { "cups": # enable => true, # ensure => running, # subscribe => [ Package["cupsys"], File["/etc/cups/cupsd.conf"] ], # } } define cups::printer ($printer, $p_description, $p_deviceuri, $p_pathppd) { include cups::server exec { "cups_create_printer_$name": command => "lpadmin -p $printer -D '$p_description' -v $p_deviceuri -P $p_pathppd", path => "/bin:/sbin:/usr/sbin:/usr/bin", unless => "/bin/grep $printer /etc/cups/printers.conf", require => Package["cupsys"], } exec { "cupsaccept_$name": command => "cupsaccept $printer", path => "/bin:/sbin:/usr/sbin:/usr/bin", # unless => "/bin/grep -v $printer /etc/cups/printers.conf", require => exec["cups_create_printer_$name"], } exec { "cupsenable_$name": command => "cupsenable $printer", path => "/bin:/sbin:/usr/sbin:/usr/bin", # unless => "/bin/grep -v $printer /etc/cups/printers.conf", require => exec["cups_create_printer_$name"], } file { "/etc/cups/printers.conf": ensure => present, require => Package["cupsys"], owner => "root", group => "lp", mode => "600", } service { "cups": enable => true, ensure => running, subscribe => [ Package["cupsys"], File["/etc/cups/printers.conf"] ], } }