Hi,

Do youmean that if in addition to adding 'cacheable: yes' in set_fact task, 
i should also be adding below config in ansible.cfg?  If so, i didn't add 
it but i can test.

gathering = smart
fact_caching = jsonfile
fact_caching_connection = /tmp/facts_cache
fact_caching_timeout = 7200

Regards,
Vikram
On Monday, 21 June, 2021 at 11:56:30 pm UTC+5:30 [email protected] wrote:

> On Mon, 21 Jun 2021 at 19:09, Vikram S <[email protected]> wrote:
>
>> Ansible documentation for set_fact module says "Set cacheable to yes to 
>> save variables across executions using a fact cache".
>>
> It also says "This boolean converts the variable into an actual 'fact' 
> which will also be added to the fact cache, if fact caching is enabled."
>
>
> https://docs.ansible.com/ansible/latest/collections/ansible/builtin/set_fact_module.html#parameter-cacheable
>
> So, did you enable fact caching?
>
>
>
> So my understanding is that setting 'cacheable: yes' would make the 
>> contents of custom variable available across differnt playbooks (as opposed 
>> to default behaviour of custom variable output being available only for 
>> current playbook).
>>
>> However when i tried to use a custom variable saved in 1 playbook in 
>> another playbook, it didn't work. So i wonder if my understanding is 
>> correct? Below is playbook:
>>
>>
>> *PLAYBOOK 1:* I define a custom variable called 'my_name' and save it in 
>> fact cache using cacheable: yes
>>
>> tasks:
>>
>>     - name: GATHER INTERFACE INFO
>>
>>       ios_command:
>>
>>         commands: "show ip int brief"
>>
>>
>>       register: show_ip
>>
>>
>>     - set_fact:
>>
>>         my_name: "{{ show_ip }}"
>>
>>         cacheable: yes
>>
>>
>> *PLAYBOOK 2:* I reference earlier custom variable in 2nd playbook for 
>> comparison but doesn't work.
>>
>>  tasks: 
>>
>>      - name: GATHER INTERFACE INFO AFTER RELOAD
>>
>>       ios_command:
>>
>>         commands: "show ip int brief"
>>
>>
>>       register: show_ip_new
>>
>>
>>     - assert:
>>
>>         that:
>>
>>         - show_ip.stdout[0] | regex_findall('up') | length == 
>> show_ip_new.stdout[0] | regex_findall('up') | length
>>
>>         fail_msg: "THERE IS INTERFACE MISMATCH. PLAYBOOK IS ENDING FOR 
>> CURRENT HOST."
>>
>>         success_msg: "INTERFACE STATUS MATCHED"
>>
>> Thanks,
>> Vikram
>>
>> -- 
>>
> 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/14fc7b95-754f-4ca4-a85f-a7ff1978b79an%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/ansible-project/14fc7b95-754f-4ca4-a85f-a7ff1978b79an%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
> -- 
> Sent from a mobile device - please excuse the brevity, spelling and 
> punctuation.
>

-- 
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/5f059759-2bf7-45e7-9e1a-a98091c2c2aan%40googlegroups.com.

Reply via email to