puppet/vmware/manifests/guest.pp
Ossi Salmi c5cf861db0 vmware: Fix vmware tools installation on newer Ubuntus
Modules are included in the kernel since 3.9.
2014-11-13 13:02:11 +02:00

95 lines
2.5 KiB
Puppet

# Install VMware optimizations if running as guest.
#
class vmware::guest {
case $::virtual {
"vmware": {
case $::operatingsystem {
"centos": { include vmware::guest::centos }
"ubuntu": { include vmware::guest::ubuntu }
}
}
}
}
# Handler for CentOS.
#
class vmware::guest::centos {
yum::repo { "vmware-tools":
descr => "VMware Tools Repository",
baseurl => "http://packages.vmware.com/tools/esx/5.0/rhel\$releasever/\$basearch",
}
package { "VMwareTools":
ensure => absent,
}
package { [ "vmware-tools-esx-nox",
"vmware-tools-esx-kmods", ]:
ensure => installed,
require => [ Package["VMwareTools"],
Yum::Repo["vmware-tools"], ],
}
}
# Handler for Ubuntu.
#
class vmware::guest::ubuntu {
require gnu::gcc
require gnu::make
if ! $vmware_tools_package {
if $vmware_tools_package_latest {
$vmware_tools_package = $vmware_tools_package_latest
} else {
fail("Must define \$vmware_tools_package or \$vmware_tools_package_latest")
}
}
file { "/usr/local/src/vmwaretools.tar.gz":
ensure => present,
mode => "0644",
owner => "root",
group => "root",
source => "puppet:///files/packages/${vmware_tools_package}",
}
util::extract::tar { "/usr/local/src/vmwaretools":
ensure => latest,
strip => 1,
source => "/usr/local/src/vmwaretools.tar.gz",
require => File["/usr/local/src/vmwaretools.tar.gz"],
}
if versioncmp($::kernelversion, "3.9") >= 0 {
$creates = "/etc/init/vmware-tools.conf"
} else {
$creates = "/lib/modules/${::kernelrelease}/misc/vmci.ko"
}
exec { "vmware-install.pl":
command => "/bin/sh -c 'umask 022; unset DISPLAY REMOTEHOST SSH_CONNECTION; perl vmware-install.pl -d; test -f ${creates}'",
path => "/bin:/usr/bin:/sbin:/usr/sbin",
cwd => "/usr/local/src/vmwaretools",
environment => [ "PAGER=/bin/cat", ],
creates => $creates,
require => Util::Extract::Tar["/usr/local/src/vmwaretools"],
}
file { "/etc/init.d/vmware-tools":
ensure => link,
target => "/lib/init/upstart-job",
before => Service["vmware-tools"],
}
service { "vmware-tools":
ensure => running,
enable => true,
subscribe => Exec["vmware-install.pl"],
}
}