# Iterate over list of items from stdout

**URL:** <https://forum.ansible.com/t/iterate-over-list-of-items-from-stdout/13578>\
**Category:** Ansible Project\
**Created:** [September 30, 2013, 1:43pm UTC](https://forum.ansible.com/t/iterate-over-list-of-items-from-stdout/13578 "2013-09-30T13:43:33Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Edgars](https://avatars.discourse-cdn.com/v4/letter/e/f17d59/32.png) [@Edgars](https://forum.ansible.com/u/Edgars)\
**Post date:** [September 30, 2013, 1:43pm UTC](https://forum.ansible.com/t/iterate-over-list-of-items-from-stdout/13578/1 "2013-09-30T13:43:33Z")

</div>

Hi

I would like to get list of items from stdout. Here is what I do:

> tasks:
> 
> - name: Get DB list  
> shell: /usr/bin/get\_db\_list.sh  
> register: dblist

> - name: dump dbs  
> mysql\_db: |  
> login\_user=root  
> login\_password=xxxxxx  
> name={{ item }}  
> state=dump  
> target=/backup/backup-{{ item }}.sql  
> with\_items: dblist.stdout

The problem is that shell module returns list as one string, like: “stdout”: “Dev\nProd” and obviously mysql\_db module takes it as one string (“Dev\nProd”) rather than two. So how can I tell module to iterate over dblist.stdout?

Thanks  
Edgars

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan2](https://avatars.discourse-cdn.com/v4/letter/m/da6949/32.png) [@Michael\_DeHaan2](https://forum.ansible.com/u/Michael_DeHaan2)\
**Post date:** [September 30, 2013, 1:45pm UTC](https://forum.ansible.com/t/iterate-over-list-of-items-from-stdout/13578/2 "2013-09-30T13:45:46Z")

</div>

Change that to “dblist.stdout\_lines” and you’ll be good to go!

---

<div class="post-metadata">

**Author:** ![Edgars](https://avatars.discourse-cdn.com/v4/letter/e/f17d59/32.png) [@Edgars](https://forum.ansible.com/u/Edgars)\
**Post date:** [September 30, 2013, 2:13pm UTC](https://forum.ansible.com/t/iterate-over-list-of-items-from-stdout/13578/3 "2013-09-30T14:13:38Z")

</div>

Thanks a lot!

Now I have other problem, mysql\_db module’s state=dump does not work:

ansible localhost -c local -u root -m mysql\_db -a “login\_password=xxxx login\_user=root name=prod state=dump target=/backup/backup-prod.sql” -vvv

\<17.0.0.1\> EXEC [‘/bin/sh’, ‘-c’, ‘mkdir -p $HOME/.ansible/tmp/ansible-1380549742.98-31810291682605 && echo $HOME/.ansible/tmp/ansible-1380549742.98-31810291682605’]  
\<17.0.0.1\> REMOTE\_MODULE mysql\_db login\_password=xxxxx login\_user=root name=prod state=dump target=/backup/backup-prod.sql  
\<17.0.0.1\> PUT /tmp/tmpdG\_TMr TO /root/.ansible/tmp/ansible-1380549742.98-31810291682605/mysql\_db  
\<17.0.0.1\> EXEC [‘/bin/sh’, ‘-c’, ‘/usr/bin/python /root/.ansible/tmp/ansible-1380549742.98-31810291682605/mysql\_db; rm -rf /root/.ansible/tmp/ansible-1380549742.98-31810291682605/ \>/dev/null 2\>&1’]  
localhost | FAILED \>\> {  
“failed”: true,  
“msg”: “dump failed!”  
}

I am pretty sure that MySQL service is running and user root can connect to it. Any ideas how can I find out why is it failing?

Edgars

pirmdiena, 2013. gada 30. septembris 15:43:33 UTC+2, Edgars rakstīja:

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan2](https://avatars.discourse-cdn.com/v4/letter/m/da6949/32.png) [@Michael\_DeHaan2](https://forum.ansible.com/u/Michael_DeHaan2)\
**Post date:** [September 30, 2013, 2:22pm UTC](https://forum.ansible.com/t/iterate-over-list-of-items-from-stdout/13578/4 "2013-09-30T14:22:29Z")

</div>

I agree that’s a pretty terrible error message and we should at least include stdout in this case.

Is this something you can file a github bug ticket on please?

---

<div class="post-metadata">

**Author:** ![Edgars](https://avatars.discourse-cdn.com/v4/letter/e/f17d59/32.png) [@Edgars](https://forum.ansible.com/u/Edgars)\
**Post date:** [September 30, 2013, 2:32pm UTC](https://forum.ansible.com/t/iterate-over-list-of-items-from-stdout/13578/5 "2013-09-30T14:32:09Z")

</div>

Thanks for your help. Filed ticket 4301

Edgars

pirmdiena, 2013. gada 30. septembris 15:43:33 UTC+2, Edgars rakstīja:
