aboutsummaryrefslogtreecommitdiff
path: root/manifests/laptop.pp
blob: 34fde339660d182390c5ba140f391f696b49833c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
class nodo::laptop inherits nodo::personal {
  include utils::laptop
  include modprobe::laptop
  include sysctl::laptop
  include firewall::wifi
  include firewall::openvpn
  include firewall::ppp

  # fstab
  if $fstab != false {
    file { "/etc/fstab":
      source => "puppet://$server/modules/nodo/etc/fstab/laptop",
      owner  => "root",
      group  => "root",
      mode   => 0644,
      ensure => present,
      notify => Exec['update-initramfs'],
    }
  }

  # crypttab
  if $crypttab != false {
    file { "/etc/crypttab":
      source    => $hibernate ? {
        false   => "puppet://$server/modules/nodo/etc/crypttab/laptop",
        default => "puppet://$server/modules/nodo/etc/crypttab/laptop.hibernate",
      },
      owner     => "root",
      group     => "root",
      mode      => 0644,
      ensure    => present,
      notify    => Exec['update-initramfs'],
    }

    # hibernation
    file { "/etc/initramfs-tools/conf.d/resume":
      owner     => "root",
      group     => "root",
      mode      => 0644,
      content   => "RESUME=/dev/mapper/cswap\n",
      notify    => Exec['update-initramfs'],
      ensure    => $hibernate ? {
        false   => absent,
        default => present,
      },
    }
  }

  # upgrade from lenny
  if $lsbdistcodename != 'lenny' {
    file { "/etc/modprobe.d/madwifi":
      ensure => absent,
    }
  }
}

class nodo::laptop::webdev inherits nodo::laptop {
  include websites::dev
  include database
  include utils::web

  backupninja::mysql { "all_databases":
  	backupdir => '/var/backups/mysql',
  	compress  => true,
  	sqldump   => true,
  }
}

class nodo::laptop::dev {
  $apt_include_src      = true
  $apt_use_next_release = false
  include nodo::laptop::webdev
}

class nodo::laptop::minimal {
  $fstab    = false
  $crypttab = false
  $xorg     = false
  $pam      = false

  # Backups should happen when the box is likely to be online
  $backup_when = 'everyday at 12:00'

  # Desktop class
  include nodo::laptop
}