From 3b98700fdb2e7459332fdcae200196de034a77f0 Mon Sep 17 00:00:00 2001 From: Ossi Salmi Date: Thu, 28 Nov 2013 22:22:35 +0200 Subject: [PATCH] vmware: Add support for Ubuntu to vmware::guest --- vmware/manifests/guest.pp | 59 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 4 deletions(-) diff --git a/vmware/manifests/guest.pp b/vmware/manifests/guest.pp index 18ec4af..ea61f76 100644 --- a/vmware/manifests/guest.pp +++ b/vmware/manifests/guest.pp @@ -1,12 +1,12 @@ - # Install VMware optimizations if running as guest. # class vmware::guest { - case $virtual { - vmware: { + case $::virtual { + "vmware": { case $::operatingsystem { - centos: { include vmware::guest::centos } + "centos": { include vmware::guest::centos } + "ubuntu": { include vmware::guest::ubuntu } } } } @@ -35,3 +35,54 @@ class vmware::guest::centos { } } + + +# Handler for Ubuntu. +# +class vmware::guest::ubuntu { + + 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"], + } + +}