Improve facter cache reliability

We don't need to be caching EC2 metadata in our facter runs because we
don't use this. By leaving this on, it can cause problems when run on
VMs in a cloud that might support EC2.  By having this enabled, we can
see deployments failing to configure nodes because it timesout:

2020-05-13 22:38:30.574339 ERROR puppetlabs.facter - EC2 user data
request failed: Timeout was reached

Additionally if facter fails to generate the cache, the subsequent
puppet runs will fail. This change also added retries to the facter
cache call to ensure that we should be able to generate the cache if an
external fact call fails for some reason.

NOTE: The master patch for this is against tripleo-ansible

Closes-Bug: #1861917
Change-Id: Iaaed0dcf747ca4a08f8e200b43d0f2259ad0ed39
(cherry-picked from c3b57d6a6c26acf35168fea7303fc485e1dcd13f)
This commit is contained in:
Alex Schultz 2020-06-03 07:44:17 -06:00
parent 510403c7e2
commit c0267e0c35
1 changed files with 5 additions and 2 deletions

View File

@ -335,6 +335,7 @@
dest: /var/lib/container-puppet/puppetlabs/facter.conf dest: /var/lib/container-puppet/puppetlabs/facter.conf
content: | content: |
facts : { facts : {
blocklist: [ "EC2" ],
ttls: [ ttls: [
{ "kernel" : 8 hour }, { "kernel" : 8 hour },
{ "memory" : 8 hour }, { "memory" : 8 hour },
@ -353,12 +354,14 @@
- name: Pre-cache facts - name: Pre-cache facts
check_mode: false check_mode: false
command: facter --config /var/lib/container-puppet/puppetlabs/facter.conf command: facter --config /var/lib/container-puppet/puppetlabs/facter.conf
retries: 5
delay: 5
no_log: True no_log: True
ignore_errors: True ignore_errors: True
register: _facter_cache_run register: _facter_cache_run
- name: Facter error output when failed - name: Failed deployment if facter fails
check_mode: false check_mode: false
debug: fail:
msg: "{{ _facter_cache_run.stderr }}" msg: "{{ _facter_cache_run.stderr }}"
when: _facter_cache_run is failed when: _facter_cache_run is failed
- name: Sync cached facts - name: Sync cached facts