From c3b57d6a6c26acf35168fea7303fc485e1dcd13f Mon Sep 17 00:00:00 2001 From: Alex Schultz Date: Wed, 13 May 2020 16:52:31 -0600 Subject: [PATCH] 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. Change-Id: Iaaed0dcf747ca4a08f8e200b43d0f2259ad0ed39 --- .../roles/tripleo_puppet_cache/defaults/main.yml | 1 + .../roles/tripleo_puppet_cache/molecule/default/prepare.yml | 2 +- tripleo_ansible/roles/tripleo_puppet_cache/tasks/main.yml | 6 ++++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/tripleo_ansible/roles/tripleo_puppet_cache/defaults/main.yml b/tripleo_ansible/roles/tripleo_puppet_cache/defaults/main.yml index e1e25d66e..bbdf4ae44 100644 --- a/tripleo_ansible/roles/tripleo_puppet_cache/defaults/main.yml +++ b/tripleo_ansible/roles/tripleo_puppet_cache/defaults/main.yml @@ -21,6 +21,7 @@ tripleo_puppet_cache_base_dir: /var/lib/container-puppet/puppetlabs tripleo_puppet_cache_config: | facts : { + blocklist: [ "EC2" ], ttls: [ { "kernel" : 8 hour }, { "memory" : 8 hour }, diff --git a/tripleo_ansible/roles/tripleo_puppet_cache/molecule/default/prepare.yml b/tripleo_ansible/roles/tripleo_puppet_cache/molecule/default/prepare.yml index 49b453d0b..ff0d2637c 100644 --- a/tripleo_ansible/roles/tripleo_puppet_cache/molecule/default/prepare.yml +++ b/tripleo_ansible/roles/tripleo_puppet_cache/molecule/default/prepare.yml @@ -19,7 +19,7 @@ hosts: all vars: required_packages: - - puppet + - facter - rsync roles: - role: test_deps diff --git a/tripleo_ansible/roles/tripleo_puppet_cache/tasks/main.yml b/tripleo_ansible/roles/tripleo_puppet_cache/tasks/main.yml index 435edb4fb..ebf086dd1 100644 --- a/tripleo_ansible/roles/tripleo_puppet_cache/tasks/main.yml +++ b/tripleo_ansible/roles/tripleo_puppet_cache/tasks/main.yml @@ -80,13 +80,15 @@ become: true check_mode: false shell: facter --config "{{ tripleo_puppet_cache_base_dir }}/facter.conf" + retries: 5 + delay: 5 no_log: true failed_when: false register: _facter_cache_run -- name: Facter error output when failed +- name: Failed deployment if facter fails check_mode: false - debug: + fail: msg: "{{ _facter_cache_run.stderr }}" when: _facter_cache_run.rc != 0