From 3926e028593cc9a099ffa79da2e9252b71d6c72d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20M=E4kinen?= Date: Tue, 14 Dec 2010 10:41:09 +0200 Subject: [PATCH] Refactored vmware::player class and added vmware::workstation class. --- vmware/manifests/init.pp | 41 ++++++++++++++++++++++++++++ vmware/manifests/player.pp | 48 +++++++-------------------------- vmware/manifests/workstation.pp | 24 +++++++++++++++++ 3 files changed, 74 insertions(+), 39 deletions(-) create mode 100644 vmware/manifests/workstation.pp diff --git a/vmware/manifests/init.pp b/vmware/manifests/init.pp index 0b137fe..0612c63 100644 --- a/vmware/manifests/init.pp +++ b/vmware/manifests/init.pp @@ -2,3 +2,44 @@ import "guest.pp" import "player.pp" import "server.pp" +import "workstation.pp" + +# Install VMware bundle package and configure kernel modules +# +# === Parameters +# +# $name: +# Bundle package name to install. +# +# === Sample usage +# +# vmware::bundle { "VMware-Player": } +# +define vmware::bundle() { + + file { "/usr/local/src/${name}.bundle": + ensure => present, + source => "puppet:///files/packages/${name}.${architecture}.bundle", + links => follow, + mode => 0755, + owner => root, + group => root, + } + + exec { "/usr/local/src/${name}.bundle --console --required": + path => "/bin:/usr/bin:/sbin:/usr/sbin", + environment => "VMWARE_EULAS_AGREED=yes", + refreshonly => true, + subscribe => File["/usr/local/src/${name}.bundle"], + notify => Exec["vmware-modconfig"], + } + + include gcc + exec { "vmware-modconfig": + command => "vmware-modconfig --console --install-all", + path => "/bin:/usr/bin:/sbin:/usr/sbin", + creates => "/lib/modules/${kernelrelease}/misc/vmci.ko", + require => Class["gcc"], + } + +} diff --git a/vmware/manifests/player.pp b/vmware/manifests/player.pp index 0f7b1d8..89e2df4 100644 --- a/vmware/manifests/player.pp +++ b/vmware/manifests/player.pp @@ -1,43 +1,13 @@ +# Install VMware Player +# +# Requires following files on puppet server: +# +# /srv/puppet/files/common/packages/VMware-Player.i386.bundle +# /srv/puppet/files/common/packages/VMware-Player.x86_64.bundle +# class vmware::player { - if ! $vmware_player { - $vmware_player = "puppet:///files/packages/VMware-Player.${architecture}.bundle" - } - - file { "/usr/local/src/VMware-Player.bundle": - ensure => present, - source => $vmware_player, - mode => 0755, - owner => root, - group => root, - } - - exec { "/usr/local/src/VMware-Player.bundle --console --required": - path => "/bin:/usr/bin:/sbin:/usr/sbin", - refreshonly => true, - subscribe => File["/usr/local/src/VMware-Player.bundle"], - } - - custom::file { "/usr/local/src/vmware-kernel-patch.bash": - ensure => present, - source => "puppet:///files/packages/vmware-kernel-patch.bash", - mode => 0755, - owner => root, - group => root, - require => Exec["/usr/local/src/VMware-Player.bundle --console --required"], - } - - exec { "/usr/local/src/vmware-kernel-patch.bash": - path => "/bin:/usr/bin:/sbin:/usr/sbin", - refreshonly => true, - subscribe => File["/usr/local/src/vmware-kernel-patch.bash"], - before => Exec["vmware-modconfig --console --install-all"], - } - - exec { "vmware-modconfig --console --install-all": - path => "/bin:/usr/bin:/sbin:/usr/sbin", - creates => "/lib/modules/${kernelrelease}/misc/vmci.ko", - } - + vmware::bundle { "VMware-Player": } + } diff --git a/vmware/manifests/workstation.pp b/vmware/manifests/workstation.pp new file mode 100644 index 0000000..c1143f9 --- /dev/null +++ b/vmware/manifests/workstation.pp @@ -0,0 +1,24 @@ + +# Install VMware Workstation +# +# Requires following files on puppet server: +# +# /srv/puppet/files/common/packages/VMware-Workstation-Full.i386.bundle +# /srv/puppet/files/common/packages/VMware-Workstation-Full.x86_64.bundle +# +# === Global variables +# +# $vmware_serial: +# Serial number for VMware Workstation. +# +class vmware::workstation { + + vmware::bundle { "VMware-Workstation-Full": } + + exec { "vmware-set-serial": + command => "/usr/lib/vmware/bin/vmware-vmx --new-sn '${vmware_serial}'", + path => "/bin:/usr/bin:/sbin:/usr/sbin", + require => Vmware::Bundle["VMware-Workstation-Full"], + } + +}