Puppet Class: lightdm::install

Defined in:
manifests/install.pp

Overview

Class lightdm::install

Parameters:

  • greeter (Any) (defaults to: $lightdm::greeter)
  • make_default (Any) (defaults to: $lightdm::make_default)
  • package_ensure (Any) (defaults to: $lightdm::package_ensure)
  • package_name (Any) (defaults to: $lightdm::package_name)
  • package_provider (Any) (defaults to: $lightdm::package_provider)


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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'manifests/install.pp', line 2

class lightdm::install (
  $greeter          = $lightdm::greeter,
  $make_default     = $lightdm::make_default,
  $package_ensure   = $lightdm::package_ensure,
  $package_name     = $lightdm::package_name,
  $package_provider = $lightdm::package_provider,
) {

  if $make_default {

    case $::osfamily {
      'Debian': {

        file { 'default-display-manager':
          ensure  => 'file',
          path    => '/etc/X11/default-display-manager',
          owner   => 'root',
          group   => 'root',
          mode    => '0644',
          content => "/usr/sbin/lightdm\n"
        }

        # Stop current display-manager before we install lightdm
        exec { 'stop other display-manager':
          command => 'systemctl stop display-manager',
          onlyif  => 'test "$(readlink /etc/systemd/system/display-manager.service)" != "/lib/systemd/system/lightdm.service"',
          path    => ['/usr/sbin', '/usr/bin', '/sbin', '/bin'],
          user    => 'root',
          before  => Package['lightdm'],
          notify  => Exec['set shared/default-x-display-manager']
        }

        # Set prefered display-manager to lightdm
        exec { 'set shared/default-x-display-manager':
          command     => 'echo lightdm shared/default-x-display-manager select lightdm | debconf-set-selections',
          path        => ['/usr/sbin', '/usr/bin', '/sbin', '/bin'],
          user        => 'root',
          refreshonly => true,
          notify      => Exec['dpkg-reconfigure lightdm'],
          require     => Package['lightdm']
        }

        # We need to dpkg-reconfigure lightdm after setting default-x-display-manager
        # to rebuild the display-manager.service symlink for systemd
        exec { 'dpkg-reconfigure lightdm':
          command     => 'dpkg-reconfigure lightdm',
          path        => ['/usr/sbin', '/usr/bin', '/sbin', '/bin'],
          user        => 'root',
          refreshonly => true,
          notify      => Class['lightdm::service'],
          require     => [Exec['set shared/default-x-display-manager'], File['default-display-manager']]
        }

        package { 'lightdm':
          name     => $package_name,
          ensure   => $package_ensure,
          provider => $package_provider,
          before   => File['default-display-manager'],
          notify   => Exec['set shared/default-x-display-manager']
        }
      }
      
      'RedHat': {
        file { 'default-display-manager':
          ensure  => 'file',
          path    => '/etc/sysconfig/desktop',
          owner   => 'root',
          group   => 'root',
          mode    => '0644',
          content => "DISPLAYMANAGER=lightdm\n"
        }
                
        package { 'lightdm':
          name     => $package_name,
          ensure   => $package_ensure,
          provider => $package_provider,
          require   => File['default-display-manager'],
        }
      }
    }
  } else {

    package { 'lightdm':
      name     => $package_name,
      ensure   => $package_ensure,
      provider => $package_provider,
    }

  }

  # Install greeter
  if $greeter {
    package {'lightdm-greeter':
      name     => $greeter,
      ensure   => $package_ensure,
      provider => $package_provider
    }
  }


}