Ansible documentation for set_fact module says “Set cacheable to yes to save variables across executions using a fact cache”. 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