Reduce fact gathering
We've seen that large amount of facts for hosts have a direct impact on
task execution as part of the deployment. This change reduces the
amount of data that we are collecting when we use facts and leverages
more targeted methods to collect the required information.
Change-Id: I49e6ca02c2b4791641fb27ebf258ef6c9d52dd9e
Related-Bug: #1915761
(cherry picked from commit f6c0acc7fe
)
This commit is contained in:
parent
ce1954adfc
commit
684f87c8e1
|
@ -27,12 +27,25 @@
|
|||
# BOOTPROTO of all interface config files (except provisioning), will be set to "none" to avoid reboot failing to acquire IP on other networks
|
||||
- name: Apply workaround for node reboot
|
||||
block:
|
||||
- name: Find the ifcg files
|
||||
- name: Find the ifcfg files
|
||||
find:
|
||||
paths: /etc/sysconfig/network-scripts/
|
||||
patterns: ifcfg-*
|
||||
register: ifcfg_files
|
||||
|
||||
# NOTE(mwhahaha): On computes collecting all the network facts is a huge
|
||||
# performance issue. So let's only get the ansible facts for the ifcfg
|
||||
# files which will avoid all the tap interfaces. This takes a while but
|
||||
# results in less memory utilization for the rest of the deployment.
|
||||
- name: Get ifcfg facts
|
||||
setup:
|
||||
gather_subset:
|
||||
- '!all'
|
||||
- '!min'
|
||||
- network
|
||||
filter: "{{ 'ansible_' + item.path | regex_replace('(^.*ifcfg-)(.*)', '\\2') | replace('-', '_') }}"
|
||||
loop: "{{ ifcfg_files.files |flatten(levels=1) }}"
|
||||
loop_control:
|
||||
label: "{{ item.path | regex_replace('(^.*ifcfg-)(.*)', '\\2') | replace('-', '_') }}"
|
||||
- name: Replace BOOTPROTO to none for interfaces which does not have IP
|
||||
replace:
|
||||
dest: "{{ item.path }}"
|
||||
|
|
|
@ -26,6 +26,16 @@
|
|||
name: "{{ tripleo_podman_packages }}"
|
||||
state: latest
|
||||
|
||||
- name: Ensure we get the ansible_interfaces fact
|
||||
when:
|
||||
- ansible_interfaces is undefined
|
||||
setup:
|
||||
gather_subset:
|
||||
- '!all'
|
||||
- '!min'
|
||||
- 'network'
|
||||
filter: 'ansible_interfaces'
|
||||
|
||||
- name: Delete legacy cni0 interface (podman < 1.6)
|
||||
command: ip link delete cni0
|
||||
when:
|
||||
|
|
|
@ -15,12 +15,15 @@
|
|||
# under the License.
|
||||
|
||||
|
||||
- name: gather package facts
|
||||
package_facts:
|
||||
manager: auto
|
||||
- name: Check if lvm2 is installed
|
||||
shell: rpm -q lvm2
|
||||
become: true
|
||||
failed_when: false
|
||||
register: lvm_pkg_check
|
||||
- name: gather allowed block devices list
|
||||
when:
|
||||
- "'lvm2' in ansible_facts.packages"
|
||||
- lvm_pkg_check.rc is defined
|
||||
- lvm_pkg_check.rc == 0
|
||||
- tripleo_tripleo_lvmfilter_enabled or tripleo_tripleo_lvmfilter_dry_run
|
||||
block:
|
||||
- name: collect in-use lvm2 devices list
|
||||
|
|
|
@ -14,12 +14,13 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
- name: Collect Network Facts
|
||||
- name: Collect default network fact
|
||||
setup:
|
||||
gather_subset:
|
||||
- '!all'
|
||||
- '!any'
|
||||
- '!min'
|
||||
- network
|
||||
filter: 'ansible_default_ipv4'
|
||||
|
||||
- name: Check Default IPv4 Gateway availability
|
||||
command: "ping -w 10 -c 1 {{ ansible_facts.default_ipv4.gateway }}"
|
||||
|
|
Loading…
Reference in New Issue