Added support for configuring printers and deploying cups configuration.
This commit is contained in:
parent
ad4abc7a77
commit
3186d04bba
2 changed files with 185 additions and 0 deletions
|
@ -41,12 +41,32 @@ class cups::server inherits cups::client {
|
|||
ensure => installed,
|
||||
}
|
||||
|
||||
file { "/etc/cups/cupsd.conf":
|
||||
ensure => present,
|
||||
source => [ "puppet:///files/cups/cupsd.conf.${fqdn}",
|
||||
"puppet:///files/cups/cupsd.conf",
|
||||
"puppet:///cups/cupsd.conf", ],
|
||||
mode => 0640,
|
||||
owner => root,
|
||||
group => lp,
|
||||
require => Package["cups"],
|
||||
notify => Service["cups"],
|
||||
}
|
||||
|
||||
service { "cups":
|
||||
ensure => running,
|
||||
enable => true,
|
||||
require => Package["cups"],
|
||||
}
|
||||
|
||||
file { "/etc/cups/ppd":
|
||||
ensure => directory,
|
||||
mode => 0755,
|
||||
owner => root,
|
||||
group => lp,
|
||||
require => Package["cups"],
|
||||
}
|
||||
|
||||
File["/etc/cups/client.conf"] {
|
||||
content => "ServerName 127.0.0.1\n",
|
||||
}
|
||||
|
@ -54,6 +74,83 @@ class cups::server inherits cups::client {
|
|||
}
|
||||
|
||||
|
||||
# Install and configure printer.
|
||||
#
|
||||
# === Parameters
|
||||
#
|
||||
# $name:
|
||||
# Printer name.
|
||||
# $uri:
|
||||
# URI to use for connecting to printer device.
|
||||
# $location:
|
||||
# Printer location, defaults to empty.
|
||||
# $ppd:
|
||||
# PPD file to use for printer. If set to "auto" PPD will be copied
|
||||
# from "puppet:///files/cups/${name}.ppd".
|
||||
# $ensure:
|
||||
# If set to present printer will be installed and if set to absent
|
||||
# printer will be removed.
|
||||
#
|
||||
# === Sample usage
|
||||
#
|
||||
# cups::printer { "hp1":
|
||||
# ensure => present,
|
||||
# uri => "socket://hp1:9100,
|
||||
# location => "Unknown",
|
||||
# }
|
||||
#
|
||||
define cups::printer($uri, $ensure = present, $location = "", $ppd = "auto") {
|
||||
|
||||
case $ensure {
|
||||
present: {
|
||||
exec { "cups-add-printer-${name}":
|
||||
command => "lpadmin -p ${name} -E -v ${uri} -o printer-error-policy=abort-job",
|
||||
path => "/bin:/sbin:/usr/bin:/usr/sbin",
|
||||
unless => "lpq -P ${name}",
|
||||
require => Service["cups"],
|
||||
}
|
||||
exec { "cups-set-location-${name}":
|
||||
command => "lpadmin -p ${name} -L '${location}'",
|
||||
path => "/bin:/sbin:/usr/bin:/usr/sbin",
|
||||
unless => $location ? {
|
||||
"" => "lpoptions -p ${name} | egrep ' printer-location '",
|
||||
default => "lpoptions -p ${name} | egrep ' printer-location=${location} '",
|
||||
},
|
||||
require => Exec["cups-add-printer-${name}"],
|
||||
}
|
||||
}
|
||||
absent: {
|
||||
exec { "cups-del-printer-${name}":
|
||||
command => "lpadmin -x ${name}",
|
||||
path => "/bin:/sbin:/usr/bin:/usr/sbin",
|
||||
onlyif => "lpq -P ${name}",
|
||||
require => Service["cups"],
|
||||
}
|
||||
}
|
||||
default: {
|
||||
fail("Unknown argument to ensure.")
|
||||
}
|
||||
}
|
||||
|
||||
file { "/etc/cups/ppd/${name}.ppd":
|
||||
ensure => $ensure,
|
||||
source => $ppd ? {
|
||||
"auto" => "puppet:///files/cups/${name}.ppd",
|
||||
default => "${ppd}",
|
||||
},
|
||||
mode => 0644,
|
||||
owner => root,
|
||||
group => root,
|
||||
require => $ensure ? {
|
||||
present => [ Exec["cups-add-printer-${name}"],
|
||||
File["/etc/cups/ppd"], ],
|
||||
absent => Exec["cups-del-printer-${name}"],
|
||||
},
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
# Install LP support into cups
|
||||
#
|
||||
class cups::lpd {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue