tripleo-bootstrap - check packeges fact befor install
When repository files are present, but the ctlplane is not on a
routed network. (I.e the node cannot connect to repositories.)
The ansible built in `package` will fail despite the fact that
the packages is already installed.
This change adds a task to check that the packages required are
isntalled using `rpm --query --whatprovides <PGK_LIST>`.
`--whatprovides` is used to find out if a wrapper rpm for OVS with
custom versioning scheme is installed. If a wrapper is installed
'openvswitch' is appended to the list of installed packages.
Related: RHBZ#2048134
Closes-Bug: #1959731
Change-Id: Ie448e8f795325cc3ae357fae32f3a47406101f25
(cherry picked from commit 37fac64938
)
This commit is contained in:
parent
fddf6fe3b3
commit
7b002dec7d
@ -0,0 +1,13 @@
|
||||
---
|
||||
fixes:
|
||||
- |
|
||||
Deployment failure was observed when repository files are present, but the
|
||||
ctlplane is a non routed network. The node cannot connect to repositories
|
||||
before the network is configured in this case. The tripleo-bootstrap role
|
||||
uses the ansible built-in ``package`` which fail despite the fact that the
|
||||
packages are already installed in case it cannot connect to repositories.
|
||||
|
||||
The tripleo-bootstrap role will now inspect the installed packages to
|
||||
check wheater or not packages are already installed. When packages are
|
||||
installed, the ``package`` tasks are skipped. See bug:
|
||||
`1959731 <https://bugs.launchpad.net/tripleo/+bug/1959731>`_.
|
@ -33,14 +33,31 @@
|
||||
- always
|
||||
|
||||
# Currently only supported on RHEL as tripleo does not have a version package
|
||||
- name: Deploy release version package
|
||||
become: true
|
||||
package:
|
||||
name: "{{ tripleo_bootstrap_release_version_package }}"
|
||||
state: present
|
||||
- name: Release version package
|
||||
when:
|
||||
- (ansible_facts['distribution'] | lower) == 'redhat'
|
||||
- (tripleo_bootstrap_release_version_package |list | length) > 0
|
||||
block:
|
||||
- name: Check release version package is installed
|
||||
command: "rpm -q --whatprovides {{ tripleo_bootstrap_release_version_package | join(' ') }}"
|
||||
args:
|
||||
warn: false
|
||||
register: rpm_query_result
|
||||
failed_when: false
|
||||
- name: Deploy release version package
|
||||
become: true
|
||||
package:
|
||||
name: "{{ tripleo_bootstrap_release_version_package }}"
|
||||
state: present
|
||||
when:
|
||||
- rpm_query_result.rc > 0
|
||||
|
||||
- name: Check required packages to bootstrap TripleO is installed
|
||||
command: "rpm -q --whatprovides {{ tripleo_bootstrap_packages_bootstrap | join(' ') }}"
|
||||
args:
|
||||
warn: false
|
||||
register: rpm_query_result
|
||||
failed_when: false
|
||||
|
||||
- name: Deploy required packages to bootstrap TripleO
|
||||
become: true
|
||||
@ -56,6 +73,8 @@
|
||||
- (tripleo_bootstrap_packages_bootstrap_result.rc | int) == 1
|
||||
- not ('No package openvswitch available.' in tripleo_bootstrap_packages_bootstrap_result.failures | default([]))
|
||||
register: tripleo_bootstrap_packages_bootstrap_result
|
||||
when:
|
||||
- rpm_query_result.rc > 0
|
||||
|
||||
- name: Create /var/lib/heat-config/tripleo-config-download directory for deployment data
|
||||
become: true
|
||||
@ -68,10 +87,19 @@
|
||||
when:
|
||||
- (tripleo_bootstrap_legacy_network_packages | length) > 0
|
||||
block:
|
||||
- name: Check required legacy network packages for bootstrap TripleO is installed
|
||||
command: "rpm -q --whatprovides {{ tripleo_bootstrap_legacy_network_packages | join(' ') }}"
|
||||
args:
|
||||
warn: false
|
||||
register: rpm_query_result
|
||||
failed_when: false
|
||||
|
||||
- name: Deploy network-scripts required for deprecated network service
|
||||
package:
|
||||
name: "{{ tripleo_bootstrap_legacy_network_packages }}"
|
||||
state: present
|
||||
when:
|
||||
- rpm_query_result.rc > 0
|
||||
|
||||
- name: Ensure network service is enabled
|
||||
systemd:
|
||||
|
Loading…
Reference in New Issue
Block a user