Hi

You deliberately replaced newlines with spaces, so now your creative
find/tr/xargs/sort command yields only one (1) line.
Hence the attach parameter will see one line that isn't a file, and fail.
I will repeat my previous advice: drop the shell and use the find module.
The documentation is here:
https://docs.ansible.com/ansible/latest/modules/find_module.html

That will give you exactly what you want.

Dick

On Thu, 5 Sep 2019 at 15:21, Rakesh Parida <[email protected]> wrote:
>
> Hi Dick/Abhijit,
>
> The problem is not searching the file in the location. the problem is 
> "attach" inside  mail module doesn't recognize the variable reference(it 
> takes hard coded path).I dont want to  hard code path inside attach. I want 
> to use the variable reference inside attach module.
>
> In the debug of "list_html_files" below it clearly shows that the html files 
> are present. i am using ansible.2.7.5
>
> Pls suggest how can i achieve this.
>
>
> ok: [10.253.173.111] => {
>     "msg": {
>         "changed": true,
>         "cmd": "find /tmp/sanity_RIC1/ -type f -regex \".*.html\" | tr -s 
> '\\n' ' ' | xargs | sort",
>         "delta": "0:00:00.006235",
>         "end": "2019-09-05 04:03:01.195198",
>         "failed": false,
>         "rc": 0,
>         "start": "2019-09-05 04:03:01.188963",
>         "stderr": "",
>         "stderr_lines": [],
>         "stdout": "/tmp/sanity_RIC1/sanity_RIC1IC01_20190905-040234.html 
> /tmp/sanity_RIC1/sanity_RIC1IC02_20190905-040247.html",
>         "stdout_lines": [
>             "/tmp/sanity_RIC1/sanity_RIC1IC01_20190905-040234.html 
> /tmp/sanity_RIC1/sanity_RIC1IC02_20190905-040247.html"
>         ]
>     }
>
>
> On Thursday, September 5, 2019 at 6:03:22 PM UTC+5:30, Abhijeet Kasurde wrote:
>>
>> Additionally, you can use `fileglob` - 
>> https://docs.ansible.com/ansible/latest/plugins/lookup/fileglob.html for 
>> getting desired files from given directory structure.
>>
>> On Thu, Sep 5, 2019 at 5:14 PM Dick Visser <[email protected]> wrote:
>>>
>>> On Thu, 5 Sep 2019 at 12:11, Rakesh Parida <[email protected]> wrote:
>>> >
>>> > I have a code as below and i have my html files present in /tmp/sanity/ .
>>> > but i am getting error as "Failed to send mail: can't attach file" i get 
>>> > file not found
>>>
>>> Well that's pretty clear: the file is not found.
>>> Debug what is in list_html_files.stdout_lines[0] and adjust that.
>>> Without any further information it's hard to tell.
>>>
>>> On a related note, instead of fragile shell find/tr/xargs/sort , I
>>> would strongly suggest to use the 'find' module.
>>> That will at least return a standard data structure (which is easier
>>> to offer help with).
>>>
>>>
>>> Dick
>>>
>>>
>>>
>>> >  - name: list html files
>>> >      run_once: true
>>> >      local_action: shell find /tmp/sanity/ -type f -regex ".*.html" | tr 
>>> > -s '\n' ' ' | xargs | sort
>>> >      register: list_html_files
>>> >    - debug: msg="{{ list_html_files }}"
>>> >
>>> >    - name: generate final email body
>>> >      run_once: true
>>> >      local_action: shell for i in `find /tmp/sanity/ -type f -regex 
>>> > ".*email.*.txt" | sort`; do cat $i ;done
>>> >      register: email_body
>>> >    - debug: msg="{{email_body}}"
>>> >
>>> >    - name: email results
>>> >      become: true
>>> >      ignore_errors: true
>>> >      run_once: true
>>> >      mail:
>>> >         host: "{{smtp_host}}"
>>> >         port: 25
>>> >         subject: "raka"
>>> >         body: '{{ email_body.stdout }}'
>>> >         from: xxxxxxx
>>> >         to: "{{ email | default('xxxxxx') }}"
>>> >         attach:
>>> >            -  '{{ list_html_files.stdout_lines[0] }}'
>>> >         charset: utf8
>>> >      delegate_to: localhost
>>> >
>>> > --
>>> > 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/69c639e2-ce8f-4931-90f4-bdb3ee0c00b5%40googlegroups.com.
>>>
>>>
>>>
>>> --
>>> Dick Visser
>>> Trust & Identity Service Operations Manager
>>> GÉANT
>>>
>>> --
>>> 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/CAL8fbwP2kZX9OUGm%2BFFY8FyK2D%3D5RpG5y6JkXpkctheUVmPMqg%40mail.gmail.com.
>>
>>
>>
>> --
>> Thanks,
>> Abhijeet Kasurde
>
> --
> 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/db3d886d-13c7-439c-a7ef-9a8f623d4937%40googlegroups.com.



-- 
Dick Visser
Trust & Identity Service Operations Manager
GÉANT

-- 
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/CAL8fbwNRg02JPjFO65%3DqD81%2BgM65HzcAm5TqRSzGi47s-54O9g%40mail.gmail.com.

Reply via email to