90 lines
2.5 KiB
Puppet
90 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
|
|
|
|
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"],
|
|
}
|
|
exec { "vmware-install.pl":
|
|
command => "/bin/sh -c 'unset DISPLAY REMOTEHOST SSH_CONNECTION ; perl vmware-install.pl -d ; test -f /lib/modules/${kernelrelease}/misc/vmci.ko'",
|
|
path => "/bin:/usr/bin:/sbin:/usr/sbin",
|
|
cwd => "/usr/local/src/vmwaretools",
|
|
environment => [ "PAGER=/bin/cat", ],
|
|
creates => "/lib/modules/${kernelrelease}/misc/vmci.ko",
|
|
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,
|
|
hasrestart => false,
|
|
start => "service vmware-tools start",
|
|
stop => "service vmware-tools stop",
|
|
status => "service vmware-tools status",
|
|
subscribe => Exec["vmware-install.pl"],
|
|
}
|
|
|
|
}
|