Cannot perform yum update on my RHV manager (ansible conflict)
Environment
- Red Hat Virtualization (RHV) 4.3
- Red Hat Virtualization (RHV) 4.4
- ovirt-engine-4.3.11.4-0.1.el7.noarch
- ovirt-hosted-engine-setup-2.3.13-2.el7ev.noarch
- Red Hat Enterprise Linux (acting as a RHV host)
Issue
- After running engine-setup and upgrading RHV from 4.3.9 to 4.3.11, I cannot do a complete yum update because the ansible requirement is locked to 2.9.13 while the one in the required repository is 2.9.14:
# yum update
Loaded plugins: enabled_repos_upload, package_upload, product-id, search-disabled-repos, subscription-manager,
: tracer_upload, versionlock
rhel-7-server-ansible-2.9-rpms | 2.3 kB 00:00:00
rhel-7-server-rh-common-rpms | 2.1 kB 00:00:00
rhel-7-server-rhv-4-manager-tools-rpms | 2.3 kB 00:00:00
rhel-7-server-rhv-4.3-manager-rpms | 2.4 kB 00:00:00
rhel-7-server-rpms | 2.0 kB 00:00:00
rhel-7-server-supplementary-rpms | 2.0 kB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package ansible.noarch 0:2.9.13-1.el7ae will be updated
--> Processing Dependency: ansible = 2.9.13 for package: ovirt-engine-4.3.11.4-0.1.el7.noarch
---> Package ansible.noarch 0:2.9.14-1.el7ae will be an update
--> Finished Dependency Resolution
Error: Package: ovirt-engine-4.3.11.4-0.1.el7.noarch (@rhel-7-server-rhv-4.3-manager-rpms)
Requires: ansible = 2.9.13
Removing: ansible-2.9.13-1.el7ae.noarch (@rhel-7-server-ansible-2-rpms)
ansible = 2.9.13-1.el7ae
Updated By: ansible-2.9.14-1.el7ae.noarch (rhel-7-server-ansible-2.9-rpms)
ansible = 2.9.14-1.el7ae
- When trying to update my RHEL based hypervisor, I get a similar ansible dependency issue (with
ovirt-hosted-engine-setup
Resolution
RHEL8 (RHV 4.4)
Starting RHV 4.4.5, Ansible is shipped via RHV channels (This content is not included.BZ#1917409) and ansible-2.9-for-rhel-8-x86_64-rpms channel should be removed for RHV components.
The workaround before RHV 4.4.5 was to add the following to /etc/yum.conf:
best=False
This will allow the system to be updated even if some packages cannot be updated to the best candidate (latest available version).
RHEL7 (RHV 4.3)
- Update your manager (or RHEL host hypervisor) so that ansible is at version 2.9.13. You can do this by disabling the package that is too new. Add to
/etc/yum.conf:
exclude=ansible-2.9.1[4-9] ansible-2.9.[2-9][0-9]*
If the newer version of ansible is already installed, you can downgrade it like so:
yum downgrade ansible-2.9.13-1.el7ae.noarch
Once the system is updated and ansible is at the correct version (ansible-2.9.13), we can use version lock to prevent it trying to update:
yum versionlock ansible
Alternatively, we can disable the ansible repository completely:
subscription-manager repos --disable=rhel-7-server-ansible-2*rpms
For both cases, the exclude line can now be removed from /etc/yum.conf.
Root Cause
The newest version of ansible is not tested with the current ovirt-engine release. Future versions of RHV will implement this setting by default ('best=False' in /etc/yum.conf), however this feature is only available on RHEL8.
Diagnostic Steps
# rpm -q ovirt-engine
ovirt-engine-4.3.11.4-0.1.el7.noarch
# rpm -qR ovirt-engine |grep ansible
ansible = 2.9.13 <= ansible version required
ovirt-ansible-roles >= 1.1.6
# yum list --showduplicates ansible
Loaded plugins: product-id, search-disabled-repos, subscription-manager, versionlock
Installed Packages
ansible.noarch 2.9.13-1.el7ae @rhel-7-server-ansible-2.9-rpms
Available Packages
ansible.noarch 2.9.0-2.el7 rhel-7-server-ansible-2.9-rpms
ansible.noarch 2.9.1-1.el7 rhel-7-server-ansible-2.9-rpms
ansible.noarch 2.9.2-1.el7ae rhel-7-server-ansible-2.9-rpms
ansible.noarch 2.9.4-1.el7ae rhel-7-server-ansible-2.9-rpms
ansible.noarch 2.9.5-1.el7ae rhel-7-server-ansible-2.9-rpms
ansible.noarch 2.9.6-1.el7ae rhel-7-server-ansible-2.9-rpms
ansible.noarch 2.9.7-1.el7ae rhel-7-server-ansible-2.9-rpms
ansible.noarch 2.9.9-1.el7ae rhel-7-server-ansible-2.9-rpms
ansible.noarch 2.9.10-1.el7ae rhel-7-server-ansible-2.9-rpms
ansible.noarch 2.9.11-1.el7ae rhel-7-server-ansible-2.9-rpms
ansible.noarch 2.9.13-1.el7ae rhel-7-server-ansible-2.9-rpms <= required version
ansible.noarch 2.9.14-1.el7ae rhel-7-server-ansible-2.9-rpms <= later available versions
ansible.noarch 2.9.15-1.el7ae rhel-7-server-ansible-2.9-rpms <=
ansible.noarch 2.9.16-1.el7ae rhel-7-server-ansible-2.9-rpms <=
ansible.noarch 2.9.17-1.el7ae rhel-7-server-ansible-2.9-rpms <=
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.