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

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

el servicio se reinicia como se debe

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