source: trunk/puppet/modules/cups/manifests/init.pp @ 471

Last change on this file since 471 was 471, checked in by sebas, 14 years ago

agregamos una opcion para los scaners en red

File size: 3.4 KB
Line 
1# copyright koumbit.org
2# Licence: GPL
3
4class cups {
5   service { "cups":
6         enable => true,
7         ensure => running,
8         subscribe => [ Package["cupsys"], File["/etc/cups/cupsd.conf"] ],
9   }
10
11}
12
13class cups::server {
14
15   package { "cupsys": ensure => "installed" }
16   package { [ "hplip", "hpijs-ppds" ]: ensure => installed; }
17
18   file { "/etc/cups/cupsd.conf":
19      source => "puppet:///cups/cupsd.conf",
20      ensure => present,
21      require => Package["cupsys"],
22      owner => "root", group => "root", mode => "644",
23   }
24
25   file { "/etc/cups/printers.conf":
26      ensure => present,
27      require => Package["cupsys"],
28      owner => "root", group => "lp", mode => "600",
29   }
30}
31
32define cups::printer ($printer, $p_deviceuri, $p_description, $p_location, $p_pathppd = "", $p_ppd = "", $p_filter = "", $p_accept = "", $p_enable = "", $p_scan = "" )
33 {
34   include cups::server
35
36  if $p_pathppd {
37    exec { "cups_create_printer_$name":
38      command => "lpadmin -p $printer -v $p_deviceuri -D '$p_description' -L '$p_location' -P $p_pathppd",
39      path => "/bin:/sbin:/usr/sbin:/usr/bin",
40      unless => "/bin/grep $printer /etc/cups/printers.conf",
41      require => [Package["cupsys"], Package["hplip"], Package["hpijs-ppds"]],
42    }
43  } else {
44     file { "/etc/cups/ppd/$p_ppd":
45     ensure => present,
46     owner => "root", group => "root", mode => "644",
47     source  => "puppet:///files/cups/$name/$p_ppd",
48     require => [Package["cupsys"], Package["hplip"], Package["hpijs-ppds"]],
49    }
50    $p_pathppdd = "/etc/cups/ppd/"
51
52    exec { "cups_create_printer_$name":
53      command => "lpadmin -p $printer -v $p_deviceuri -D '$p_description' -L '$p_location' -P $p_pathppdd$p_ppd",
54      path => "/bin:/sbin:/usr/sbin:/usr/bin",
55      unless => "/bin/grep $printer /etc/cups/printers.conf",
56      require => [Package["cupsys"], Package["hplip"], Package["hpijs-ppds"]],
57    }
58  }
59
60  if $p_filter {
61     file { "/usr/lib/cups/filter/$p_filter":
62     ensure => present,
63     owner => "root", group => "root", mode => "755",
64     source  => "puppet:///files/cups/$name/$p_filter",
65     require => exec["cups_create_printer_$name"],
66    }
67  } else {
68    debug ("'$printer' doesn't need a special filter")
69  }
70
71  if $p_accept {
72    exec { "cupsaccept_$name":
73      command => "cupsaccept $printer",
74      path => "/bin:/sbin:/usr/sbin:/usr/bin",
75      unless => "grep -A8 $printer /etc/cups/printers.conf | grep 'Accepting Yes'",
76      require => exec["cups_create_printer_$name"],
77    }
78  } else {
79    debug ("'$printer' will not accept print jobs")
80  }
81
82  if $p_enable {
83    exec { "cupsenable_$name":
84      command => "cupsenable $printer",
85      path => "/bin:/sbin:/usr/sbin:/usr/bin",
86      unless => "grep -A5 $printer /etc/cups/printers.conf | grep 'State Idle'",
87      require => exec["cups_create_printer_$name"],
88    }
89  } else {
90    debug ("'$printer' is disabled")
91  }
92
93  if $p_scan {
94   package { "sane-utils": ensure => "installed" }
95
96    line { saned_activate_off:
97      file => "/etc/default/saned",
98      line => 'RUN=no',
99      ensure => absent,
100      require => Package["sane-utils"],
101      notify  => Service["saned"],
102    }
103
104    line { saned_activate_on:
105      file => "/etc/default/tftpd-hpa",
106      line => 'RUN=yes',
107      ensure => present,
108      require => Package["sane-utils"],
109      notify  => Service["saned"],
110    }
111  } else {
112    debug ("'$printer' cannot scan on the network")
113  }
114
115}
116
Note: See TracBrowser for help on using the repository browser.