From 97b930c6edc7973497f469ae859fa2258cbea4d6 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Sun, 20 Aug 2023 18:38:17 +0200 Subject: use variables instead facts mostly everywhere set_fact is stupid; they persist through multiple role executions; for example, you cannot do this: set_fact: foo: '{{ foo | default("bar") }}' If somebody calls the role and defines foo, it will always be set to that value forever, even for subsequent role calls. --- roles/file_wait/tasks/check.yml | 14 +++++++------- roles/file_wait/tasks/main.yml | 4 ++++ 2 files changed, 11 insertions(+), 7 deletions(-) (limited to 'roles/file_wait') diff --git a/roles/file_wait/tasks/check.yml b/roles/file_wait/tasks/check.yml index aa55830..47122b7 100644 --- a/roles/file_wait/tasks/check.yml +++ b/roles/file_wait/tasks/check.yml @@ -13,17 +13,17 @@ ignore_unreachable: true ignore_errors: true -- name: If the host restarted, try again +- name: If host restarted, try again when: file_wait_check is unreachable block: - - name: Log the number of tolerable reboots + - name: Show number of reboots ansible.builtin.debug: - msg: 'Number of tolerable reboots: {{ file_wait_reboots }}' + msg: 'Number of reboots left: {{ file_wait_reboots_left }}' - - name: Decrement the number of tolerable reboots + - name: Decrement number of reboots ansible.builtin.set_fact: - file_wait_reboots: '{{ (file_wait_reboots | int) - 1 }}' + file_wait_reboots_left: '{{ (file_wait_reboots_left | int) - 1 }}' - - name: Retry if there're more tolerable reboots + - name: Retry if there're more reboots ansible.builtin.include_tasks: check.yml - when: (file_wait_reboots | int >= 0) + when: (file_wait_reboots_left | int >= 0) diff --git a/roles/file_wait/tasks/main.yml b/roles/file_wait/tasks/main.yml index 9afef57..169f834 100644 --- a/roles/file_wait/tasks/main.yml +++ b/roles/file_wait/tasks/main.yml @@ -1,3 +1,7 @@ +- name: Reset number of reboots + ansible.builtin.set_fact: + file_wait_reboots_left: '{{ file_wait_reboots }}' + - name: Check if file exists ansible.builtin.include_tasks: check.yml -- cgit v1.2.3