pre_task btw is just to have a means to print out some installation variables for quick check in order to be able to react and abort the installation, if something is not as desired.
It is also quite handy, if you for instance use foreign roles (like geerlinguys node js installer). That needs an apt-cache update on bionic, before the role jumps in. So I sometimes find it helpful to have an early quick spot on something. Neil Young schrieb am Mittwoch, 5. Januar 2022 um 20:48:18 UTC+1: > Yepp. Works. Many thanks. I also tried to simplify my true/false > derivation before to no avail, but now it works. > Thanks > > > Neil Young schrieb am Mittwoch, 5. Januar 2022 um 20:44:37 UTC+1: > >> Hi Dick, >> Thanks for your elaborated answer. >> >> The reason for having vars after stat is that I feared the "not defined" >> issue. I never tried to have vars before, but since I will try your >> set_fact approach, this doesn't matter either. >> >> Thanks. >> >> >> [email protected] schrieb am Mittwoch, 5. Januar 2022 um 20:41:53 UTC+1: >> >>> Hii >>> >>> >>> On Wed, 5 Jan 2022 at 20:09, 'Neil Young' via Ansible Project >>> <[email protected]> wrote: >>> > >>> > And this is all I wanted: >>> > >>> > # ansible-playbook -l offline -i hosts.cfg test.yml >>> > >>> > ./test.yml: >>> > >>> > >>> > - hosts: all >>> > >>> > pre_tasks: >>> > # Test if there was a previous source installation of KMS >>> > - name: Test if there was a KMS source installation running before >>> > stat: >>> > path: ~/.kms_installed_from_source >>> > register: kms_trace >>> > >>> > vars: >>> > kms_installed_from_source: '{{ true if (kms_trace.stat.exists) else >>> false }}' >>> >>> You have the 'vars' section after 'pre_tasks', giving the impression >>> that this matters, while it doesn't. >>> It can be anywhere. >>> However, while it can be listed anywhere, it won't always work, >>> because kms_installed_from_source won't be available if used in tasks >>> that are earlier than the 'stat' task. >>> >>> Things will be less ambiguous if you use a set_fact task, so it is >>> clear where the variable is actually set. >>> >>> Regarding 'pre_tasks' (as well as post_tasks), I find those somewhat >>> confusing. I always have just 'tasks' and then the order of the tasks >>> is as they appear in that list. I'm saying because I've seen >>> post_tasks being put at the beginning, and the other way around. >>> >>> The "true if (kms_trace.stat.exists) else false" is unnecessary as >>> stat.exists is already a boolean. >>> Concluding, if you must use a dedicated variale, then this task (as >>> part of just 'tasks') should be sufficient: >>> >>> - set_fact: >>> kms_installed_from_source: '{{ kms_trace.stat.exists }}' >>> >>> Obviously the stat task needs to be executed before this. But if >>> that's listed in that order, there is no ambiguity. >>> >>> DIck >>> >> -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/a7fe149a-5d4b-490f-8392-0589ff7cee5fn%40googlegroups.com.
