voxpupuli / puppet-vmwaretools

Puppet module to manage VMware Operating System Specific Packages for VMware tools installation.
http://forge.puppetlabs.com/razorsedge/vmwaretools
Apache License 2.0
34 stars 44 forks source link

autoupgrade requires dependencies to be passed using $package parameter... #59

Open acjohnson opened 7 years ago

acjohnson commented 7 years ago

I'm attempting to update our VMWare Tools OSP RPMs using autoupgrade => true but have found that I have to list all packages including dependencies like this.

Is this how you intended the autoupgrade to work?

    if ($facts['osfamily'] == 'RedHat') and ($facts['os']['release']['major'] == '5') {
      class { '::vmwaretools':
        manage_repository => false,
        autoupgrade       => true,
        tools_version     => $tools_version,
        scsi_timeout      => $scsi_timeout,
        package           => ['vmware-tools-esx-nox',
                              'vmware-tools-esx-kmods',
                              'kmod-vmware-tools-pvscsi',
                              'kmod-vmware-tools-vmci',
                              'kmod-vmware-tools-vmmemctl',
                              'kmod-vmware-tools-vmxnet',
                              'kmod-vmware-tools-vmxnet3',
                              'kmod-vmware-tools-vsock',
                              'vmware-tools-pvscsi-common',
                              'vmware-tools-vmci-common',
                              'vmware-tools-vmmemctl-common',
                              'vmware-tools-vmxnet-common',
                              'vmware-tools-vmxnet3-common',
                              'vmware-tools-vsock-common']
      }
    }

    if ($facts['osfamily'] == 'RedHat') and ($facts['os']['release']['major'] == '6') {
      class { '::vmwaretools':
        manage_repository => false,
        autoupgrade       => true,
        tools_version     => $tools_version,
        scsi_timeout      => $scsi_timeout,
        package           => ['vmware-tools-esx-nox',
                              'vmware-tools-esx-kmods',
                              'kmod-vmware-tools-vmci',
                              'kmod-vmware-tools-vmxnet',
                              'kmod-vmware-tools-vsock',
                              'vmware-tools-vmci-common',
                              'vmware-tools-vmxnet-common',
                              'vmware-tools-vsock-common']
      }
    }
razorsedge commented 7 years ago

I have never really tested it, but I had always assumed that yum updateing one of the packages would force the others to update, due to package version dependencies. I know that works at the commandline, but have never tested on other OSs.

With which tools versions are you working?

acjohnson commented 7 years ago

I went ahead and tested manually the exact commands that the yum provider is doing (using Puppet 4.8.1).

It appears that the yum update commands are pulling in some dependencies but still miss the following packages:

kmod-vmware-tools-vmci
kmod-vmware-tools-vmxnet
kmod-vmware-tools-vsock
vmware-tools-vmci-common
vmware-tools-vmxnet-common
vmware-tools-vsock-common

(tested on RHEL6 with vmware-tools 6.0p04 OSPs)

[root@server ~]# cat /etc/yum.repos.d/vmware-tools.repo
[vmware-tools]
name=VMware Tools 6.0p04 - rhel6 x86_64
baseurl=https://packages.vmware.com/tools/esx/6.0p04/rhel6/x86_64/
enabled=1
gpgcheck=0

[root@server ~]# yum clean all
Loaded plugins: aliases, changelog, downloadonly, fastestmirror, keys, rhnplugin, security, verify
Cleaning repos: epel rhel-6-x86_64-server-extras-stable rhel-6-x86_64-server-optional-stable rhel-6-x86_64-server-stable
              : rhel-6-x86_64-server-supplementary-stable vmware-tools
Cleaning up Everything
Cleaning up list of fastest mirrors

[root@server ~]# yum repolist
Loaded plugins: aliases, changelog, downloadonly, fastestmirror, keys, rhnplugin, security, verify
epel                                                                                                                                                      | 2.1 kB     00:00
epel/primary                                                                                                                                              | 4.6 MB     00:00
epel                                                                                                                                                                 13064/13064
rhel-6-x86_64-server-extras-stable                                                                                                                        | 2.1 kB     00:00
rhel-6-x86_64-server-extras-stable/primary                                                                                                                |  14 kB     00:00
rhel-6-x86_64-server-extras-stable                                                                                                                                         51/51
rhel-6-x86_64-server-optional-stable                                                                                                                      | 2.3 kB     00:00
rhel-6-x86_64-server-optional-stable/primary                                                                                                              | 3.2 MB     00:00
rhel-6-x86_64-server-optional-stable                                                                                                                                 10424/10424
rhel-6-x86_64-server-stable                                                                                                                               | 2.4 kB     00:00
rhel-6-x86_64-server-stable/primary                                                                                                                       |  29 MB     00:00
rhel-6-x86_64-server-stable                                                                                                                                          18296/18296
rhel-6-x86_64-server-supplementary-stable                                                                                                                 | 2.3 kB     00:00
rhel-6-x86_64-server-supplementary-stable/primary                                                                                                         | 253 kB     00:00
rhel-6-x86_64-server-supplementary-stable                                                                                                                                655/655
vmware-tools                                                                                                                                              | 2.5 kB     00:00
vmware-tools/primary_db                                                                                                                                   |  33 kB     00:00
repo id                                                                               repo name                                                                            status
epel                                                                                  Extra Packages for Enterprise Linux 6                                                13,064
rhel-6-x86_64-server-extras-stable                                                    RHEL 6 x86_64 Extras stable                                                              51
rhel-6-x86_64-server-optional-stable                                                  RHEL 6 x86_64 Optional stable                                                        10,424
rhel-6-x86_64-server-stable                                                           RHEL 6 x86_64 Server stable                                                          18,296
rhel-6-x86_64-server-supplementary-stable                                             RHEL 6 x86_64 Supplementary stable                                                      655
vmware-tools                                                                          VMware Tools 5.5ep07 - rhel6 x86_64                                                      40
repolist: 42,553

[root@server ~]# /usr/bin/yum -d 0 -e 0 -y update vmware-tools-esx-nox
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-vgauth start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running
vmware-tools-services start/running

[root@server ~]# /usr/bin/yum -d 0 -e 0 -y update vmware-tools-esx-kmods

[root@server ~]# yum update
Loaded plugins: aliases, changelog, fastestmirror, keys, rhnplugin, security, verify
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package kmod-vmware-tools-vmci.x86_64 0:9.5.13.0-2.6.32.71.el6.x86_64.5.el6 will be updated
---> Package kmod-vmware-tools-vmci.x86_64 0:9.8.1.0-2.6.32.71.el6.x86_64.5.el6 will be an update
---> Package kmod-vmware-tools-vmxnet.x86_64 0:2.0.15.0-2.6.32.71.el6.x86_64.5.el6 will be updated
---> Package kmod-vmware-tools-vmxnet.x86_64 0:2.1.0.0-2.6.32.71.el6.x86_64.5.el6 will be an update
---> Package kmod-vmware-tools-vsock.x86_64 0:9.5.6.0-2.6.32.71.el6.x86_64.5.el6 will be updated
---> Package kmod-vmware-tools-vsock.x86_64 0:9.8.1.0-2.6.32.71.el6.x86_64.5.el6 will be an update
---> Package vmware-tools-vmci-common.x86_64 0:9.4.11-5.el6 will be updated
---> Package vmware-tools-vmci-common.x86_64 0:10.0.9-5.el6 will be an update
---> Package vmware-tools-vmxnet-common.x86_64 0:9.4.11-5.el6 will be updated
---> Package vmware-tools-vmxnet-common.x86_64 0:10.0.9-5.el6 will be an update
---> Package vmware-tools-vsock-common.x86_64 0:9.4.11-5.el6 will be updated
---> Package vmware-tools-vsock-common.x86_64 0:10.0.9-5.el6 will be an update
---> Package zabbix.x86_64 0:1.8.22-1.el6 will be updated
---> Package zabbix.x86_64 0:2.2.6-1.el6 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================================================================================================================
 Package                                          Arch                         Version                                                  Repository                          Size
=================================================================================================================================================================================
Updating:
 kmod-vmware-tools-vmci                           x86_64                       9.8.1.0-2.6.32.71.el6.x86_64.5.el6                       vmware-tools                       152 k
 kmod-vmware-tools-vmxnet                         x86_64                       2.1.0.0-2.6.32.71.el6.x86_64.5.el6                       vmware-tools                        44 k
 kmod-vmware-tools-vsock                          x86_64                       9.8.1.0-2.6.32.71.el6.x86_64.5.el6                       vmware-tools                        96 k
 vmware-tools-vmci-common                         x86_64                       10.0.9-5.el6                                             vmware-tools                        32 k
 vmware-tools-vmxnet-common                       x86_64                       10.0.9-5.el6                                             vmware-tools                        50 k
 vmware-tools-vsock-common                        x86_64                       10.0.9-5.el6                                             vmware-tools                        32 k
146 k

Transaction Summary
=================================================================================================================================================================================
Upgrade       6 Package(s)

Total download size: 552 k
Is this ok [y/N]: n
acjohnson commented 7 years ago

I tested this a bit more by removing all vmware tools packages and then running yum install vmware-tools-esx-nox vmware-tools-esx-kmods manually. It appears that the yum update command used by the Puppet yum provider doesn't attempt to update all package dependencies, but when using yum install when no vmware-tools are already installed results in all package dependencies to be installed as expected...

Perhaps it would be cleaner to have the autoupgrade feature remove all installed vmware-tools packages and then run yum install.

This would also remove the need to pass the packages using the package param I beleive.