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
|
# File 'manifests/virtualization/virtualbox.pp', line 7
class software::virtualization::virtualbox (
$ensure = $software::params::software_ensure,
$version = $software::params::virtualbox_version,
$build = $software::params::virtualbox_build,
$url = $software::params::virtualbox_url,
$key = $software::params::virtualbox_key,
) inherits software::params {
validate_string($ensure)
case $::operatingsystem {
'Darwin': {
validate_string($version, $build, $url)
exec { 'KillVirtualBoxProcesses':
command => 'pkill "VBoxXPCOMIPCD" || true && pkill "VBoxSVC" || true && pkill "VBoxHeadless" || true',
path => '/usr/bin:/usr/sbin:/bin:/usr/local/bin',
refreshonly => true,
}
package { "VirtualBox-${version}-${build}":
ensure => $ensure,
provider => pkgdmg,
source => $url,
require => Exec['KillVirtualBoxProcesses'],
}
}
'Ubuntu': {
validate_string($version, $build, $url)
$apt_source_ensure = $ensure ? {
'installed' => present,
'latest' => present,
default => $ensure,
}
include '::apt'
apt::source { 'virtualbox':
ensure => $apt_source_ensure,
location => $url,
repos => 'contrib',
key => $key,
} -> Class['apt::update'] ->
package { 'dkms': } ->
package { "virtualbox-${version}": ensure => $ensure }
}
'windows': {
package { 'virtualbox':
ensure => $ensure,
provider => chocolatey,
install_options => ['--allow-empty-checksums'],
}
}
default: {
fail("The ${name} class is not supported on ${::operatingsystem}.")
}
}
}
|