thanks Neha, Kai

I could fix the issue by using range with stdout.split(). Even, it is
working with stdout_lines as well

Once again thanks to all for helping me on this request.

Regards,
Suresh

On Wed, May 6, 2020 at 5:30 PM Neha Pithadiya <[email protected]>
wrote:

> Can you paste the content of "volchk" list .. Also try using
> item.stdout_lines instead of item.stdout in your debug task.
>
> On Wednesday, May 6, 2020 at 12:26:11 AM UTC+5:30, Suresh Karpurapu wrote:
>>
>> would anyone please help me on this request?
>>
>> Regards,
>> Suresh
>>
>> On Tue, May 5, 2020 at 2:45 AM Suresh Karpurapu <[email protected]>
>> wrote:
>>
>>> Here is my playbook, i would like to display all lines in stdout_lines
>>> in below format without miss. I am able to display only first 3 lines but
>>> host03 has more than 3 lines even it may be more lines for other hosts.
>>> Would anyone please help me?
>>>
>>> Required output fle:
>>> ==================
>>> host1,nfsflr01:/app01,/app,na,/etc/fstab
>>> host2,nfsflr02:/app02,/app02,na,/etc/fstab
>>> host3,nfsflr03:/app03,/app03,na,/etc/fstab
>>> host3,nfsflr03:/app03,/app03,na,/etc/rc.willows
>>> host4,nfsflr04:/app04,na,na,na
>>>
>>>
>>> ---
>>>   - name: nullify the ansible log file
>>>     local_action: copy content="" dest="{{ playbook_dir
>>> }}/logs/volmigration.log"
>>>     ignore_errors: true
>>>     run_once: True
>>>   - name: nullify the file content
>>>     local_action: copy content="" dest="{{ playbook_dir
>>> }}/logs/volcheck.txt"
>>>     ignore_errors: true
>>>     run_once: True
>>>   - name: Making the txt header information to volcheck.txt file
>>>     local_action:
>>>       module: lineinfile
>>>       path: "{{ playbook_dir }}/logs/volcheck.txt"
>>>       line: "host,python,old_path,mnt_path,new_path,map_path,csv_path"
>>>       state: present
>>>       create: yes
>>>     run_once: True
>>>   - name: Fetch the volume mounted status
>>>     shell: |-
>>>       {% if ansible_os_family == "Solaris" %}
>>>       grep -ws "{{ item.0 }}" /etc/vfstab|awk '{print $1}'
>>>       grep -ws "{{ item.0 }}" /etc/vfstab|awk '{print $3}'
>>>       grep -wls "{{ item.0 }}" /etc/vfstab
>>>       grep -wls "{{ item.0 }}" /etc/auto*|head -1|xargs grep -w "{{
>>> item.0 }}"|awk '{print $2}'
>>>       grep -wls "{{ item.0 }}" /etc/auto*|head -1|xargs grep -w "{{
>>> item.0 }}"|awk '{print $1}'
>>>       grep -wls "{{ item.0 }}" /etc/auto*|head -1
>>>       {%- else %}
>>>       grep -rws "{{ item.0 }}" /etc/fstab|awk '{print $1}'
>>>       grep -rws "{{ item.0 }}" /etc/fstab|awk '{print $2}'
>>>       grep -wls "{{ item.0 }}" /etc/fstab
>>>       grep -rls "{{ item.0 }}" /etc/auto*|head -1|xargs grep -w "{{
>>> item.0 }}"|awk '{print $3}'
>>>       grep -rls "{{ item.0 }}" /etc/auto*|head -1|xargs grep -w "{{
>>> item.0 }}"|awk '{print $1}'
>>>       grep -rwls "{{ item.0 }}" /etc/auto*|head -1
>>>       grep -rwls "{{ item.0 }}" /etc/rc*|head -1|xargs grep -w "{{
>>> item.0 }}"|awk '{print $6}'
>>>       grep -rwls "{{ item.0 }}" /etc/rc*|head -1|xargs grep -w "{{
>>> item.0 }}"|awk '{print $7}'
>>>       grep -rwls "{{ item.0 }}" /etc/rc*|head -1
>>>       {%- endif %}
>>>     with_together:
>>>       - "{{ var1 }}"
>>>     register: volchk
>>>     args:
>>>       warn: false
>>>     ignore_errors: true
>>>   - name: Making the final volcheck.txt file
>>>     local_action:
>>>       module: lineinfile
>>>       path: "{{ playbook_dir }}/logs/volcheck.txt"
>>>       line: |-
>>>         {% if item.stdout|length>0 %}
>>>         {{ inventory_hostname }},{{ ansible_python_interpreter }},{{
>>> item.stdout_lines[0] }},{{ item.stdout_lines[1] }},NA,{{
>>> item.stdout_lines[2] }},{{ item.item.0 }},
>>>         {%- else %}
>>>         {{ inventory_hostname }},{{ ansible_python_interpreter
>>> }},NA,NA,NA,NA,{{ item.item.0 }},
>>>         {%- endif %}
>>>       insertafter: EOF
>>>       state: present
>>>       create: yes
>>>     with_items: "{{ volchk.results }}"
>>>   - name: mark the entry of /etc/fstab and /etc/vfstab as fstab
>>>     replace:
>>>       path: "{{ playbook_dir }}/logs/volcheck.txt"
>>>       regexp: "{{ item.stdout_lines[2] }}"
>>>       replace: "fstab"
>>>     when: item.stdout|length>0 and (item.stdout_lines[2] |
>>> regex_search("/etc/fstab") or item.stdout_lines[2] |
>>> regex_search("/etc/vfstab"))
>>>     with_items: "{{ volchk.results }}"
>>>     delegate_to: localhost
>>>   - debug:
>>>       msg: "Final volume check file is located at {{ playbook_dir
>>> }}/logs/volcheck.txt"
>>>     delegate_to: localhost
>>>     run_once: true
>>>   - name: Send the final report email
>>>     local_action:
>>>       module: mail
>>>       host: host10.google.com
>>>       port: 25
>>>       to: [email protected]
>>>       subject: Ansible volume pre-check report
>>>       attach: "{{ playbook_dir }}/logs/volcheck.txt"
>>>     run_once: true
>>> ...
>>>
>>> Debug:
>>> Debug "volchk.result" output:
>>> ===============
>>> host1:
>>>      "stdout": "nfsflr01:/app01\n/app\n/etc/fstab",
>>>      "stdout_lines": [
>>>                 "nfsflr01:/app01",
>>>                 "/app",
>>>                 "/etc/fstab"
>>>
>>> host2:
>>>     "stdout": "nfsflr02:/app02\n/app02\n/etc/fstab",
>>>     "stdout_lines": [
>>>         "nfsflr02:/app02",
>>>         "/app02",
>>>         "/etc/fstab"
>>> host3:
>>>      "stdout":
>>> "nfsflr03:/app03\n/app03\n/etc/fstab\nnfsflr03:/app03\n/app03\n/etc/rc.willows",
>>>      "stdout_lines": [
>>>          "nfsflr03:/app03",
>>>          "/app03",
>>>          "/etc/fstab",
>>>          "nfsflr03:/app03",
>>>          "/app03",
>>>          "/etc/rc.willows"
>>>
>>> On Mon, May 4, 2020 at 2:57 PM Suresh Karpurapu <[email protected]>
>>> wrote:
>>>
>>>> Hi Sai Stian,
>>>>
>>>> This syntax would be helpful but i may be using in wrong way as i am
>>>> getting below errors. Please help on fixing the issue.
>>>>
>>>>   - name: debug with with sequence
>>>>     debug:
>>>>       msg:"{{ volchk[item.stdout | int] }},{{ volchk[item.stdout | int
>>>> + 1] }},{{ volchk[item.stdout | int + 2] }}"
>>>>     with_sequence: start=0 end={{ (volchk | length)-1 }} stride=3
>>>> *error:*
>>>> FAILED! => {"msg": "The task includes an option with an undefined
>>>> variable. The error was: 'ansible.utils.unsafe_proxy.AnsibleUnsafeBytes
>>>> object' has no attribute 'stdout'\n\nThe error appears to be in
>>>> '/suresh/suresh_playbooks/nfsvolmigration/roles/mountcheck/tasks/volcheck.yml':
>>>> line 44, column 5, but may\nbe elsewhere in the file depending on the exact
>>>> syntax problem.\n\nThe offending line appears to be:\n\n    ignore_errors:
>>>> true\n  - name: debug with with sequence\n    ^ here\n"}
>>>>
>>>> Debug "volchk.result" output:
>>>> ===============
>>>> host1:
>>>>      "stdout": "nfsflr01:/app01\n/app\n/etc/fstab",
>>>>      "stdout_lines": [
>>>>                 "nfsflr01:/app01",
>>>>                 "/app",
>>>>                 "/etc/fstab"
>>>>
>>>> host2:
>>>>     "stdout": "nfsflr02:/app02\n/app02\n/etc/fstab",
>>>>     "stdout_lines": [
>>>>         "nfsflr02:/app02",
>>>>         "/app02",
>>>>         "/etc/fstab"
>>>> host3:
>>>>      "stdout":
>>>> "nfsflr03:/app03\n/app03\n/etc/fstab\nnfsflr03:/app03\n/app03\n/etc/rc.willows",
>>>>      "stdout_lines": [
>>>>          "nfsflr03:/app03",
>>>>          "/app03",
>>>>          "/etc/fstab",
>>>>          "nfsflr03:/app03",
>>>>          "/app03",
>>>>          "/etc/rc.willows"
>>>>
>>>> Regards,
>>>> Suresh
>>>>
>>>>
>>>>
>>>> FAILED! => {"msg": "'dict object' has no attribute 'stdout'"}
>>>>
>>>> On Sat, May 2, 2020 at 2:32 PM Kai Stian Olstad <[email protected]>
>>>> wrote:
>>>>
>>>>> On Wed, Apr 29, 2020 at 03:44:14PM -0700, Suresh Karpurapu wrote:
>>>>> > Would anyone please help me formatting mountchk.result. I am able to
>>>>> get
>>>>> > the required output with
>>>>> > item.stdout_lines[0],item.stdout_lines[1],item.stdout_lines[2] but
>>>>> host3
>>>>> > has 6 entries. So, please help me in filtering
>>>>>
>>>>> You can use with_sequence or range in a for loop.
>>>>>
>>>>>   vars:
>>>>>     myvar:
>>>>>       - one
>>>>>       - two
>>>>>       - three
>>>>>       - four
>>>>>       - five
>>>>>       - six
>>>>>   tasks:
>>>>>     - debug: msg="{{ myvar[item | int] }},{{ myvar[item | int + 1]
>>>>> }},{{ myvar[item | int + 2] }}"
>>>>>       with_sequence: start=0 end={{ (myvar | length) - 1 }} stride=3
>>>>>
>>>>>     - debug:
>>>>>         msg: |
>>>>>           {% for i in range(0, myvar | length, 3) %}
>>>>>           {{ myvar[i] }},{{ myvar[i + 1] }},{{ myvar[i + 2] }}
>>>>>           {% endfor %}
>>>>>
>>>>> --
>>>>> Kai Stian Olstad
>>>>>
>>>>> --
>>>>> 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/20200502090224.zygkso3iqpjok2bk%40olstad.com
>>>>> .
>>>>>
>>>> --
> 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/6311bf4f-8be9-41c7-b7b0-41137190b2f2%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/6311bf4f-8be9-41c7-b7b0-41137190b2f2%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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/CAHedzhLvYmumNuaj%3DzhKz24%3DNNFLsJDXXX18ODjNYo0dzVkBVw%40mail.gmail.com.

Reply via email to