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

Last change on this file since 737 was 737, checked in by sebas@…, 14 years ago

no se bien porque este codigo esta ahi... igual un commit

File size: 6.2 KB
Line 
1# copyright koumbit.org
2# Licence: GPL
3
4class cups {
5}
6
7##
8## cups (browse) - to see other printers
9##
10
11class cups::browse::only {
12
13    package { [ 'cups' ]: ensure => installed }
14
15    file {
16        "/etc/cups/cupsd.conf": ensure => present, checksum => mtime }
17
18    service { "cups":
19       enable => true,
20       ensure => running,
21       subscribe => [ Package["cups"], File["/etc/cups/cupsd.conf"] ],
22    }
23}
24
25
26class cups::browse {
27
28    package { [ 'cups' ]: ensure => installed }
29
30    file { "/etc/cups/cupsd.conf": ensure => present, checksum => mtime }
31   
32    line { cupsbrowseoff:
33       file => "/etc/cups/cupsd.conf",
34       line => 'Browsing Off',
35       ensure => absent,
36       require => Package["cups"]
37    }
38    line { cupsbrowseon:
39       file => "/etc/cups/cupsd.conf",
40       line => 'Browsing On',
41       ensure => present,
42       require => Package["cups"]
43    }
44
45    service { "cups":
46       enable => true,
47       ensure => running,
48       subscribe => [ Package["cups"], File["/etc/cups/cupsd.conf"] ],
49    }
50}
51
52
53define cups::saned::client ($remotescanner)
54  {
55   package { "xsane": ensure => "installed" }
56   package { "gocr-tk": ensure => "installed" }
57
58   file { "/etc/sane.d/net.conf":
59      ensure => present,
60      require => Package["xsane"],
61      owner => "root", group => "root", mode => "644",
62   }
63    line { saned_remotescanner:
64      file => "/etc/sane.d/net.conf",
65      line => $remotescanner,
66      ensure => present,
67      require => Package["xsane"],
68    }
69  }
70
71class cups::saned {
72
73   package { "sane-utils": ensure => "installed" }
74
75    line { saned_activate_off:
76      file => "/etc/default/saned",
77      line => 'RUN=no',
78      ensure => absent,
79      require => Package["sane-utils"],
80      notify  => Service["saned"],
81    }
82    line { saned_activate_on:
83      file => "/etc/default/saned",
84      line => 'RUN=yes',
85      ensure => present,
86      require => Package["sane-utils"],
87      notify  => Service["saned"],
88    }
89
90   file { "/etc/default/saned":
91      ensure => present,
92      require => Package["sane-utils"],
93      owner => "root", group => "root", mode => "644",
94   }
95
96    line { saned_allow:
97      file => "/etc/sane.d/saned.conf",
98      line => $sanedallow,
99      ensure => present,
100      require => Package["sane-utils"],
101      notify  => Service["saned"],
102    }
103
104   file { "/etc/sane.d/saned.conf":
105      ensure => present,
106      require => Package["sane-utils"],
107      owner => "root", group => "root", mode => "644",
108   }
109
110   service { "saned":
111      enable => true,
112      ensure => running,
113      provider => "debian",
114      subscribe => [ Package["sane-utils"], File["/etc/default/saned"] ],
115   }
116
117   @user { "saned":
118        ensure  => "present",
119        groups  => "lp",
120        require => Package["sane-utils"],
121   }
122
123   realize(
124        User["saned"]
125   )
126
127}
128
129class cups::server {
130
131   package { "cupsys": ensure => "installed" }
132   package { [ "hplip", "hpijs-ppds" ]: ensure => installed; }
133
134   file { "/etc/cups/cupsd.conf":
135      source => "puppet:///cups/cupsd.conf",
136      ensure => present,
137      require => Package["cupsys"],
138      owner => "root", group => "root", mode => "644",
139   }
140
141   file { "/etc/cups/printers.conf":
142      ensure => present,
143      require => Package["cupsys"],
144      owner => "root", group => "lp", mode => "600",
145   }
146
147   service { "cups":
148      enable => true,
149      ensure => running,
150      provider => "debian",
151      subscribe => [ Package["cupsys"], File["/etc/cups/cupsd.conf"] ],
152   }
153}
154
155define cups::printer ($printer, $p_deviceuri, $p_description, $p_location, $p_pathppd = "", $p_ppd = "", $p_filter = "", $p_accept = "", $p_enable = "", $p_scan = "" )
156 {
157   include cups::server
158
159  if $p_pathppd {
160    exec { "cups_create_printer_$name":
161      command => "lpadmin -p $printer -v $p_deviceuri -D '$p_description' -L '$p_location' -P $p_pathppd",
162      path => "/bin:/sbin:/usr/sbin:/usr/bin",
163      unless => "/bin/grep $printer /etc/cups/printers.conf",
164      require => [Package["cupsys"], Package["hplip"], Package["hpijs-ppds"], Service["cups"]],
165    }
166  } else {
167     file { "/etc/cups/ppd/$p_ppd":
168     ensure => present,
169     owner => "root", group => "root", mode => "644",
170     source  => "puppet:///files/cups/$name/$p_ppd",
171     require => [Package["cupsys"], Package["hplip"], Package["hpijs-ppds"]],
172    }
173    $p_pathppdd = "/etc/cups/ppd/"
174
175    exec { "cups_create_printer_$name":
176      command => "lpadmin -p $printer -v $p_deviceuri -D '$p_description' -L '$p_location' -P $p_pathppdd$p_ppd",
177      path => "/bin:/sbin:/usr/sbin:/usr/bin",
178      unless => "/bin/grep $printer /etc/cups/printers.conf",
179      require => [Package["cupsys"], Package["hplip"], Package["hpijs-ppds"]],
180    }
181  }
182
183  if $p_filter {
184     file { "/usr/lib/cups/filter/$p_filter":
185     ensure => present,
186     owner => "root", group => "root", mode => "755",
187     source  => "puppet:///files/cups/$name/$p_filter",
188     require => exec["cups_create_printer_$name"],
189    }
190  } else {
191    debug ("'$printer' doesn't need a special filter")
192  }
193
194  if $p_accept {
195    exec { "cupsaccept_$name":
196      command => "cupsaccept $printer",
197      path => "/bin:/sbin:/usr/sbin:/usr/bin",
198      unless => "grep -A8 $printer /etc/cups/printers.conf | grep 'Accepting Yes'",
199      require => exec["cups_create_printer_$name"],
200    }
201  } else {
202    exec { "cupsreject_$name":
203      command => "cupsreject $printer",
204      path => "/bin:/sbin:/usr/sbin:/usr/bin",
205      unless => "grep -A8 $printer /etc/cups/printers.conf | grep 'Accepting No'",
206      require => exec["cups_create_printer_$name"],
207    }
208    debug ("'$printer' will not accept print jobs")
209  }
210
211  if $p_enable {
212    exec { "cupsenable_$name":
213      command => "cupsenable $printer",
214      path => "/bin:/sbin:/usr/sbin:/usr/bin",
215      unless => "grep -A5 $printer /etc/cups/printers.conf | grep 'State Idle'",
216      require => exec["cups_create_printer_$name"],
217    }
218  } else {
219    exec { "cupsdisable_$name":
220      command => "cupsdisable $printer",
221      path => "/bin:/sbin:/usr/sbin:/usr/bin",
222      unless => "grep -A5 $printer /etc/cups/printers.conf | grep 'State Stopped'",
223      require => exec["cups_create_printer_$name"],
224    }
225    debug ("'$printer' is disabled")
226  }
227
228  if $p_scan {
229    include cups::saned
230  } else {
231    debug ("'$printer' cannot scan on the network")
232  }
233
234}
235
Note: See TracBrowser for help on using the repository browser.