Puppet Class: software::browsers::chrome

Inherits:
software::params
Defined in:
manifests/browsers/chrome.pp

Overview

Parameters:

  • ensure (Any) (defaults to: $software::params::software_ensure)
  • url (Any) (defaults to: $software::params::chrome_url)
  • channel (Any) (defaults to: $software::params::chrome_channel)


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
# File 'manifests/browsers/chrome.pp', line 7

class software::browsers::chrome (
  $ensure  = $software::params::software_ensure,
  $url     = $software::params::chrome_url,
  $channel = $software::params::chrome_channel,
) inherits software::params {

  case $facts['os']['name'] {
    'Darwin': {
      package { 'google-chrome':
        ensure   => $ensure,
        provider => brewcask,
      }
    }
    'Debian', 'Ubuntu': {
      assert_type(Stdlib::HTTPUrl, $url)
      assert_type(String[1], $channel)

      $apt_source_ensure = $ensure ? {
        'installed' => present,
        'latest'    => present,
        default     => $ensure,
      }

      include '::apt'
      apt::source { 'google-chrome':
        ensure       => $apt_source_ensure,
        location     => $url,
        release      => 'stable',
        repos        => 'main',
        key          => {
          'id'     => '4CCA1EAF950CEE4AB83976DCA040830F7FAC5991',
          'source' => 'https://dl.google.com/linux/linux_signing_key.pub',
        },
        architecture => 'amd64',
      }
      -> Class['apt::update']

      -> package { "google-chrome-${channel}":
        ensure => $ensure,
      }
    }
    'windows': {
      package { 'googlechrome':
        ensure   => $ensure,
        provider => chocolatey,
      }
    }
    default: {
      fail("The ${name} class is not supported on ${facts['os']['name']}.")
    }
  }

}