I am trying to process the result from the find module. The result contains 3 file paths which i would like to process in a loop. The number of files depends on the number of files found in the directories and is set by result.matched
Using the with_sequence loop should do the trick, i think. But i ran into a problem. with_sequence: start=0 end={{ variable }}, expects {{ variable }} to be an integer. Casting {{ variable | int}} results in a zero value, which should be 3. Any suggestions how to solve or work around my issue? After casting the variable correctly to an integer, off course i still have to subtract 1 to set the correct index value for the results array. *Variables*: file_path: "roles/ansible-role-iamGroups/files" template_path: "roles/ansible-role-iamGroups/templates" declared_int: 3 *Tasks*: - name: find files find: recurse: yes patterns: "*.json" paths: "/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/" register: result - name: register numbers variable shell: "echo {{result.matched}}" register: number - name: list number variable (==> string value 3) debug: var=number - name: list result hard coded (works) debug: "var=result.files[{{item}}].path" with_sequence: "start=0 end=2 stride=1" - name: list result with variable casted to integer (number is casted to 0, should be 3 ) debug: "var=result.files[{{item}}].path" with_sequence: "start=0 end={{ number | int }} stride=1" - name: list result with declared integer variable minus 1 (works) debug: "var=result.files[{{item}}].path" with_sequence: "start=0 end={{ declared_int - 1 }} stride=1" - name: list result without casting variable number ( results in parsing error) debug: "var=result.files[{{item}}].path" with_sequence: "start=0 end={{ number }} stride=1" *Output*: ok: [aws] => { "changed": false, "examined": 25, "files": [ { "atime": 1480345980.447014, "ctime": 1480345980.451014, "dev": 2049, "gid": 1000, "inode": 523227, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1480345980.447014, "nlink": 1, "path": "/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/ReadOnly/readOnly.json", "rgrp": true, "roth": true, "rusr": true, "size": 1655, "uid": 1000, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false }, { "atime": 1480345980.523014, "ctime": 1480345980.527014, "dev": 2049, "gid": 1000, "inode": 523175, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1480345980.527014, "nlink": 1, "path": "/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/PowerUser/iamAccess.json", "rgrp": true, "roth": true, "rusr": true, "size": 136, "uid": 1000, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false }, { "atime": 1480345980.531014, "ctime": 1480345980.539014, "dev": 2049, "gid": 1000, "inode": 523226, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mode": "0644", "mtime": 1480345980.531014, "nlink": 1, "path": "/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/PowerUser/powerUser.json", "rgrp": true, "roth": true, "rusr": true, "size": 138, "uid": 1000, "wgrp": false, "woth": false, "wusr": true, "xgrp": false, "xoth": false, "xusr": false } ], "invocation": { "module_args": { "age": null, "age_stamp": "mtime", "contains": null, "file_type": "file", "follow": false, "get_checksum": false, "hidden": false, "paths": [ "/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/" ], "patterns": [ "*.json" ], "recurse": true, "size": null, "use_regex": false }, "module_name": "find" }, "matched": 3, "msg": "" } TASK [ansible-role-iamGroups : register numbers variable] ************************************************************************************************************************************************************************************************************************************************** task path: /home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/tasks/main.yml:9 Using module file /home/user/ansible/lib/ansible/modules/core/commands/command.py <aws> ESTABLISH LOCAL CONNECTION FOR USER: user <aws> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1480495766.92-247180421426282 `" && echo ansible-tmp-1480495766.92-247180421426282="` echo $HOME/.ansible/tmp/ansible-tmp-1480495766.92-247180421426282 `" ) && sleep 0' <aws> PUT /tmp/tmpO5IsA5 TO /home/user/.ansible/tmp/ansible-tmp-1480495766.92-247180421426282/command.py <aws> EXEC /bin/sh -c 'chmod u+x /home/user/.ansible/tmp/ansible-tmp-1480495766.92-247180421426282/ /home/user/.ansible/tmp/ansible-tmp-1480495766.92-247180421426282/command.py && sleep 0' <aws> EXEC /bin/sh -c '/usr/bin/python /home/user/.ansible/tmp/ansible-tmp-1480495766.92-247180421426282/command.py; rm -rf "/home/user/.ansible/tmp/ansible-tmp-1480495766.92-247180421426282/" > /dev/null 2>&1 && sleep 0' changed: [aws] => { "changed": true, "cmd": "echo 3", "delta": "0:00:00.003979", "end": "2016-11-30 09:49:27.332742", "invocation": { "module_args": { "_raw_params": "echo 3", "_uses_shell": true, "chdir": null, "creates": null, "executable": null, "removes": null, "warn": true }, "module_name": "command" }, "rc": 0, "start": "2016-11-30 09:49:27.328763", "stderr": "", "stdout": "3", "stdout_lines": [ "3" ], "warnings": [] } TASK [ansible-role-iamGroups : list number variable (==> string value 3)] ********************************************************************************************************************************************************************************************************************************** task path: /home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/tasks/main.yml:13 ok: [aws] => { "number": { "changed": true, "cmd": "echo 3", "delta": "0:00:00.003979", "end": "2016-11-30 09:49:27.332742", "rc": 0, "start": "2016-11-30 09:49:27.328763", "stderr": "", "stdout": "3", "stdout_lines": [ "3" ], "warnings": [] } } TASK [ansible-role-iamGroups : list result hard coded (works)] ********************************************************************************************************************************************************************************************************************************************* task path: /home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/tasks/main.yml:16 ok: [aws] => (item=0) => { "invocation": { "module_args": { "var": "result.files[0].path" }, "module_name": "debug" }, "item": "0", "result.files[0].path": "/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/ReadOnly/readOnly.json" } ok: [aws] => (item=1) => { "invocation": { "module_args": { "var": "result.files[1].path" }, "module_name": "debug" }, "item": "1", "result.files[1].path": "/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/PowerUser/iamAccess.json" } ok: [aws] => (item=2) => { "invocation": { "module_args": { "var": "result.files[2].path" }, "module_name": "debug" }, "item": "2", "result.files[2].path": "/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/PowerUser/powerUser.json" } TASK [ansible-role-iamGroups : list result with variable casted to integer (number is casted to 0, should be 3 )] ****************************************************************************************************************************************************************************************** task path: /home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/tasks/main.yml:20 ok: [aws] => (item=0) => { "invocation": { "module_args": { "var": "result.files[0].path" }, "module_name": "debug" }, "item": "0", "result.files[0].path": "/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/ReadOnly/readOnly.json" } TASK [ansible-role-iamGroups : list result with declared integer variable minus 1 (works)] **************************************************************************************************************************************************************************************************************** task path: /home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/tasks/main.yml:24 ok: [aws] => (item=0) => { "invocation": { "module_args": { "var": "result.files[0].path" }, "module_name": "debug" }, "item": "0", "result.files[0].path": "/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/ReadOnly/readOnly.json" } ok: [aws] => (item=1) => { "invocation": { "module_args": { "var": "result.files[1].path" }, "module_name": "debug" }, "item": "1", "result.files[1].path": "/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/PowerUser/iamAccess.json" } ok: [aws] => (item=2) => { "invocation": { "module_args": { "var": "result.files[2].path" }, "module_name": "debug" }, "item": "2", "result.files[2].path": "/home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/templates/prod/PowerUser/powerUser.json" } TASK [ansible-role-iamGroups : list result without casting variable number ( results in parsing error)] **************************************************************************************************************************************************************************************************** task path: /home/user/PycharmProjects/playbook-aws-billing/roles/ansible-role-iamGroups/tasks/main.yml:28 fatal: [aws]: FAILED! => { "failed": true, "msg": "unknown error parsing with_sequence arguments: u\"start=0 end={u'changed': True, u'end': u'2016-11-30 09:49:27.332742', u'stdout': u'3', u'cmd': u'echo 3', u'rc': 0, u'start': u'2016-11-30 09:49:27.328763', u'stderr': u'', u'delta': u'0:00:00.003979', 'stdout_lines': [u'3'], u'warnings': []} stride=1\". Error was: can't parse arg end=u\"{u'changed':\" as integer" } to retry, use: --limit @/home/user/PycharmProjects/playbook-aws-billing/billing-iam-pb.retry PLAY RECAP ************************************************************************************************************************************************************************************************************************************************************************************************* aws : ok=7 changed=1 unreachable=0 failed=1 -- 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 ansible-project+unsubscr...@googlegroups.com. To post to this group, send email to ansible-project@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/e336d0bc-a955-4026-a396-5b636cb3d90e%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.