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

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

agregamos para rechazar trabajo y desactivar la impresora

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