Wait a second. You're saying "{{ vars[ comp_file ] }}", but

comp_file="/home/user1/ansible/patching/logs/2022-11-10/server1-compare-2022-11-10.txt"

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").

On 11/10/22 1:26 PM, Veera wrote:

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"}


On Thursday, November 10, 2022 at 10:24:51 PM UTC+5:30 [email protected] wrote:

    A couple of things. First,

    comp_file: /logs/{{ exec_date }}/{{ inventory_hostname
    }}-compare-{{{ exec_date }}.txt
    has three left braces on "exec_date".

    Second, mustaches (i.e. "{{" … "}}") never nest. So

        copy content="{{ compare_out.stdout }}" dest="{{ vars[ {{
    comp_file }} ] }}"
    should be

        copy content="{{ compare_out.stdout }}" dest="{{ vars[
    comp_file ] }}"
    Well, at least that's "dest=" without nested mustaches. Whether
    it's right or not I don't know, but it's less wrong this way.


    On 11/10/22 9:16 AM, Veera wrote:
    Hi,

    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 ..


    [vee@server]$ grep comp_file  vars/postcheck_vars.yml
    comp_file: /logs/{{ exec_date }}/{{ inventory_hostname
    }}-compare-{{{ exec_date }}.txt

    [vee@server]$ cat  compare_sanity.yml
    - name: comparing file1 and file2
      local_action: command /usr/bin/sdiff "{{ logs_dir }}"{{
    inventory_hostname }}-Pre-{{ exec_date }}.txt "{{ logs_dir }}"{{
    inventory_hostname }}-Post-{{ exec_date }}.txt
      register: compare_out
      ignore_errors: yes
      no_log: True

    - name: create output  file
      local_action:
        copy   content="{{ compare_out.stdout }}" dest="{{ vars[ {{
    comp_file }} ] }}"
      [vee@server]$


--
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/be18049b-2246-e0a3-885f-e5fa95efe614%40gmail.com.

Reply via email to