install-ansible: ensure stevedore

We have identified an issue with stevedore < 3.3.0 where the
cloud-launcher, running under ansible, makes stevedore hashe a /tmp
path into a entry-point cache file it makes, causing a never-ending
expansion.

This appears to be fixed by [1] which is available in 3.3.0.  Ensure
we install this on bridge.  For good measure, add a ".disable" file as
we don't really need caches here.

There's currently 491,089 leaked files, so I didn't think it wise to
delete these in a ansible loop as it will probably time out the job.
We can do this manually once we stop creating them :)

[1] d7cfadbb7d

Change-Id: If5773613f953f64941a1d8cc779e893e0b2dd516
This commit is contained in:
Ian Wienand 2021-03-03 14:06:14 +11:00
parent 3f1d67b99f
commit a12d2fce2b
2 changed files with 26 additions and 0 deletions

View File

@ -58,6 +58,12 @@
src: bash-history.sh
dest: /etc/profile.d/bash-history.sh
- name: Ensure root cache directory
file:
path: /root/.cache
state: directory
mode: 0700
- name: Include OS-specific tasks
include_tasks: "{{ lookup('first_found', file_list) }}"
vars:

View File

@ -140,6 +140,26 @@
version: '{{ _install_ansible_openstacksdk_version | default(omit) }}'
state: '{{ _install_openstacksdk_state | default(omit) }}'
# NOTE(ianw) 2021-03-03 stevedore < 3.3.0 has a bug where it creates a
# constantly expanding set of cache files in
# /root/.cache/python-endpoints when run under ansible in a /tmp
# directory (this happens via cloud-launcher and openstacksdk).
# Ensure the production host is updated, and drop a .disable file
# for good measure
- name: Ensure stevedore >= 3.3.0
pip:
name: 'stevedore>=3.3.0'
- name: Add stevedore cache dir
file:
path: /root/.cache/python-entrypoints/
state: directory
mode: 0700
- name: Add stevedore cache disable file
file:
path: /root/.cache/python-entrypoints/.disable
state: touch
mode: 0600
- name: Ensure /etc/ansible and /etc/ansible/hosts
file:
state: directory