I am trying to copy the contents from a register output to a file in the local server.
However , I have challenges in re-calling the variable filename in the copy command.
Correct me what I am missing. in dest=“{{ vars[ {{ comp_file }} ] }}” or “{{ compare_out.stdout }}” in the last lines …
Thanks for pointing as i did notice that , and I have corrected the three left braces on “exec_date”.
Second, mustaches (i.e. “{{” … “}}”) never nest << Yes , I tried earlier that and even now after reverting back , still the same issue …
Execution error for the play below.
fatal: [server1 → localhost]: FAILED! => {“msg”: “The task includes an option with an undefined variable. The error was: ‘dict object’ has no attribute u’/home/user1/ansible/patching/logs/2022-11-10/server1-compare-2022-11-10.txt’\n\nThe error appears to be in ‘/home/unixops/ansible/linux_patching/compare_sanity.yml’: line 7, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: create compare file using precheck and postcheck sanity checks\n ^ here\n”}
So you’re trying to pull a value from the “vars” dict with the key of
“/home/user1/ansible/patching/logs/2022-11-10/server1-compare-2022-11-10.txt”.
Whatever “vars” is, it doesn’t have any data with that name.
Perhaps you mean this:
dest=“{{ comp_file }}”
Whatever. In any case, if I were you, I’d throw in a debug step and print out the values of “compare_out.stdout” and, er, whatever you think “dest” is supposed to be (“vars”? but I think you just mean “comp_file”).
Whatever “vars” is, it doesn’t have any data with that name - exactly… it will be a new file to be created by the copy’s “dest .”
compare_out.stdout is having the output of hundreds of lines to be printed parallely . I have disabled the printing of its output (to reduce screen space) by
register: compare_out
no_log: true