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 $".
+#