diff --git a/cups/files/cupsd.conf b/cups/files/cupsd.conf deleted file mode 100644 index 184549a..0000000 --- a/cups/files/cupsd.conf +++ /dev/null @@ -1,88 +0,0 @@ -# -# "$Id: cupsd.conf.in 7199 2008-01-08 00:16:30Z mike $" -# -# Sample configuration file for the Common UNIX Printing System (CUPS) -# scheduler. See "man cupsd.conf" for a complete description of this -# file. -# -MaxLogSize 2000000000 - -# Log general information in error_log - change "info" to "debug" for -# troubleshooting... -LogLevel info - -# Administrator user group... -SystemGroup sys root sysadm - -# Disable preserving jobs -PreserveJobFiles Off -PreserveJobHistory Off - -# Only listen for connections from the local machine. -Listen *:631 -Listen /var/run/cups/cups.sock - -# Show shared printers on the local network. -Browsing On -BrowseOrder allow,deny -# (Change '@LOCAL' to 'ALL' if using directed broadcasts from another subnet.) -BrowseAllow @LOCAL - -# Default authentication type, when authentication is required... -DefaultAuthType Basic - -# Restrict access to the server... - - Order allow,deny - Allow @LOCAL - - -# Restrict access to the admin pages... - - Encryption Required - Order allow,deny - - -# Restrict access to configuration files... - - AuthType Default - Require user @SYSTEM - Order allow,deny - - -# Set the default printer/job policies... - - # Job-related operations must be done by the owner or an administrator... - - Require user @OWNER @SYSTEM - Order deny,allow - - - # All administration operations require an administrator to authenticate... - - AuthType Default - Require user @SYSTEM - Order deny,allow - - - # All printer operations require a printer operator to authenticate... - - AuthType Default - Require user @SYSTEM - Order deny,allow - - - # Only the owner or an administrator can cancel or authenticate a job... - - Require user @OWNER @SYSTEM - Order deny,allow - - - - Order deny,allow - - - -# -# End of "$Id: cupsd.conf.in 7199 2008-01-08 00:16:30Z mike $". -# diff --git a/cups/manifests/init.pp b/cups/manifests/init.pp index 444a2b6..59b21ac 100644 --- a/cups/manifests/init.pp +++ b/cups/manifests/init.pp @@ -55,20 +55,56 @@ class cups::client { # Install cups server # -class cups::server inherits cups::client { +# === Parameters: +# +# $admin_group: +# Group name which is allowed to modify printers. +# +# $manager_group: +# Group name which is allowed to remove jobs from print +# queues. +# +# $ssl_cert: +# Path to SSL certificate. Defaults to auto generated +# certificate. +# +# $ssl_key: +# Path to SSL key. Defaults to auto generated key. +# +class cups::server($admin_group=undef, $manager_group=undef, + $ssl_cert=undef, $ssl_key=undef) inherits cups::client { + + require ssl package { [ "ghostscript", "system-config-printer" ]: ensure => installed, } + if $ssl_key and $ssl_cert { + file { "${ssl::private}/cups.key": + ensure => present, + source => $ssl_key, + mode => "0600", + owner => "root", + group => "root", + notify => Service["cups"], + } + file { "${ssl::certs}/cups.crt": + ensure => present, + source => $ssl_cert, + mode => "0644", + owner => "root", + group => "root", + notify => Service["cups"], + } + } + file { "/etc/cups/cupsd.conf": ensure => present, - source => [ "puppet:///files/cups/cupsd.conf.${::homename}", - "puppet:///files/cups/cupsd.conf", - "puppet:///modules/cups/cupsd.conf", ], + content => template("cups/cupsd.conf.erb"), mode => "0640", - owner => root, - group => lp, + owner => "root", + group => "lp", require => Package["cups"], notify => Service["cups"], } diff --git a/cups/templates/cupsd.conf.erb b/cups/templates/cupsd.conf.erb new file mode 100644 index 0000000..438e027 --- /dev/null +++ b/cups/templates/cupsd.conf.erb @@ -0,0 +1,135 @@ +MaxLogSize 0 +# +# "$Id: cupsd.conf.in 8805 2009-08-31 16:34:06Z mike $" +# +# Sample configuration file for the CUPS scheduler. See "man cupsd.conf" for a +# complete description of this file. +# + +<% if @ssl_cert and @ssl_key -%> +# SSL support +ServerCertificate <%= scope.lookupvar('ssl::certs') %>/cups.crt +ServerKey <%= scope.lookupvar('ssl::private') %>/cups.key + +<% end -%> +# Do not preserve history +PreserveJobFiles Off +PreserveJobHistory Off + +# Log general information in error_log - change "warn" to "debug" +# for troubleshooting... +LogLevel info +AccessLog syslog +ErrorLog syslog + +# Administrator user group... +SystemGroup sys root <% if @admin_group %><%= @admin_group %><% end %> + +# Listen all interfaces for connections. +ServerAlias * +Listen *:631 +Listen /var/run/cups/cups.sock + +# Show shared printers on the local network. +Browsing On +BrowseOrder allow,deny +BrowseAllow @LOCAL +BrowseLocalProtocols CUPS dnssd + +# Default authentication type, when authentication is required... +DefaultAuthType Basic + +# Restrict access to the server... + + Order allow,deny + Allow from @LOCAL + + +# Restrict access to the admin pages... + + Order allow,deny + + +# Restrict access to configuration files... + + AuthType Default + Require user @SYSTEM + Order allow,deny + + +# Set the default printer/job policies... + + # Job-related operations must be done by the owner or an administrator... + + Require user @OWNER @SYSTEM + Order deny,allow + + + # All administration operations require an administrator to authenticate... + + AuthType Default + Require user @SYSTEM + Order deny,allow + + + # All printer operations require a printer operator to authenticate... + + AuthType Default + Require user @SYSTEM + Order deny,allow + + + # Only the owner or an administrator can cancel or authenticate a job... + + Require user @OWNER @SYSTEM <% if @manager_group %>@<%= @manager_group %><% end %> + Order deny,allow + + + + Order deny,allow + + + +# Set the authenticated printer/job policies... + + # Job-related operations must be done by the owner or an administrator... + + AuthType Default + Order deny,allow + + + + AuthType Default + Require user @OWNER @SYSTEM + Order deny,allow + + + # All administration operations require an administrator to authenticate... + + AuthType Default + Require user @SYSTEM + Order deny,allow + + + # All printer operations require a printer operator to authenticate... + + AuthType Default + Require user @SYSTEM + Order deny,allow + + + # Only the owner or an administrator can cancel or authenticate a job... + + AuthType Default + Require user @OWNER @SYSTEM <% if @manager_group %>@<%= @manager_group %><% end %> + Order deny,allow + + + + Order deny,allow + + + +# +# End of "$Id: cupsd.conf.in 8805 2009-08-31 16:34:06Z mike $". +#