craigwatson / puppet-vmwaretools

Puppet module for non-OSP VMware Tools Installation

Home Page:http://forge.puppetlabs.com/CraigWatson1987/vmwaretools

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

module install fails with previous install

cdenneen opened this issue · comments

On Ubuntu with open-vm-tools, open-vm-dkms installed module install doesn't remove as expected.

On CentOS with previous install fails without first removing packages:

rpm -e vmware-tools-guestlib-8.6.5-3.x86_64 vmware-tools-plugins-timeSync-8.6.5-2.x86_64 kmod-vmware-tools-vsock-1.0.0.0-2.6.32.71.el6.x86 _64.3.x86_64 vmware-tools-plugins-deployPkg-8.6.5-2.x86_64 vmware-tools-vmci-common-8.6.5-3.x86_64 vmware-tools-foundation-8.6.5-4.x86_64 vmware-tools-services-8.6.5-3.x86_64 vmware-tools-plugins-vmbackup-8.6.5-2.x86_64 vmware-tools-plugins-autoUpgrade-8.6.5-2.x86_64 kmod-vmw are-tools-vmci-9.0.3.0-2.6.32.71.el6.x86_64.3.x86_64 kmod-vmware-tools-vmxnet-2.0.9.1-2.6.32.71.el6.x86_64.3.x86_64 vmware-tools-libraries -nox-8.6.5-2.x86_64 vmware-tools-plugins-vix-8.6.5-2.x86_64 vmware-tools-plugins-hgfsServer-8.6.5-2.x86_64 vmware-tools-help-8.6.5-2.x86_6 4 vmware-tools-vsock-common-8.6.5-3.x86_64 vmware-tools-esx-kmods-8.6.5-2.x86_64 vmware-tools-plugins-powerOps-8.6.5-2.x86_64 vmware-tools -esx-nox-8.6.5-2.x86_64 vmware-tools-core-8.6.5-2.x86_64 vmware-tools-plugins-guestInfo-8.6.5-2.x86_64 vmware-tools-vmxnet-common-8.6.5-3. x86_64

Once packages are removed from both systems I was able to use the vmwaretools module.

For completeness on Ubuntu I had manifest install "open-vm-tools" and on CentOS I was using razorsedge-vmwaretools (v4.6.0)

I'm going to stick my neck out and say that previous installs aren't the module's responsibility - there's no way you can (reliably) remove all of the possible conflicting packages. The open-vm-tools and open-vm-dkms packages should already be purged by the module.

The class relationships in manifests/install.pp should ensure that the packages are purged before any of the archive installation takes place.

As far as I'm aware, the open-vm-tools package (open source VMware drivers) and OSP (proprietary VMware code) packages aren't meant to be used together - it's an "either/or" choice I believe.

Ok so for CentOS that makes sense. The list above would be good purge list for CentOS.
As far as Ubuntu the purge of those 2 packages didn't work. I believe its because if the vmci.ko exists it doesn't purge thinking its already installed properly. I'd have to follow along the workflow of the module entirely to be 100% sure but I believe that is the reason. Also I believe that is the reason that when on my CentOS box my previous vmwaretools puppet module installed it tried to run the config script that was missing and its because of vmci.ko existence. Probably should have that purge list always run and if any of those packages are install (regardless of vmci.ko state it should purge and start over with full install)

Unfortunately I don't have the time to maintain a purge-list, so I'd much rather provide no list than an up-to-date one.

On the purge, you're right - I'll update manifests/install.pp so that is processed on every run, or separate it into a new purge class.

If it helps

case $::osfamily {
  'RedHat': {
    $vmpackages = [
      'vmware-tools-guestlib', 
      'vmware-tools-plugins-timeSync',
      'kmod-vmware-tools-vsock',
      'vmware-tools-plugins-deployPkg',
      'vmware-tools-vmci-common',
      'vmware-tools-foundation',
      'vmware-tools-services',
      'vmware-tools-plugins-vmbackup',
      'vmware-tools-plugins-autoUpgrade',
      'kmod-vmware-tools-vmci',
      'kmod-vmware-tools-vmxnet',
      'vmware-tools-libraries-nox',
      'vmware-tools-plugins-vix',
      'vmware-tools-plugins-hgfsServer',
      'vmware-tools-help',
      'vmware-tools-vsock-common',
      'vmware-tools-esx-kmods',
      'vmware-tools-plugins-powerOps',
      'vmware-tools-esx-nox',
      'vmware-tools-core',
      'vmware-tools-plugins-guestInfo',
      'vmware-tools-vmxnet-common',
    ]
    package { "$vmpackages" :
      ensure => absent
    }
  }
  'Debian' : {
    $vmpackages = [
      'open-vm-tools',
      'open-vm-dkms',
        ]
    package { "$vmpackages" :
      ensure => absent
    }
  }
  default : { "fail no such osfamily" }

Thanks (apologies for the delay!) - I've decided against including a definitive purge-list as the package names are out of my control and it's impossible to keep an up-to-date list of current packages in use by both RH and Debian-based systems.

I've moved the vmwaretools::install::package include outside of the "should we deploy" if statement, so that packages are purged/installed with every Puppet run - thanks!