# Loop in a loop

**URL:** <https://forum.ansible.com/t/loop-in-a-loop/23772>\
**Category:** Ansible Project\
**Created:** [February 20, 2017, 4:46pm UTC](https://forum.ansible.com/t/loop-in-a-loop/23772 "2017-02-20T16:46:07Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Acrobis\_Nubian](https://avatars.discourse-cdn.com/v4/letter/a/c4cdca/32.png) [@Acrobis\_Nubian](https://forum.ansible.com/u/Acrobis_Nubian)\
**Post date:** [February 20, 2017, 4:46pm UTC](https://forum.ansible.com/t/loop-in-a-loop/23772/1 "2017-02-20T16:46:07Z")

</div>

Hi all,

If someone could help me on the following:

I am trying to automate as maximum as possible the addition of authorized keys to my new remote servers by doing the below playbook, but I am getting the following error:

---

<div class="post-metadata">

**Author:** ![Kai\_Stian\_Olstad](https://avatars.discourse-cdn.com/v4/letter/k/e19adc/32.png) [@Kai\_Stian\_Olstad](https://forum.ansible.com/u/Kai_Stian_Olstad)\
**Post date:** [February 20, 2017, 7:46pm UTC](https://forum.ansible.com/t/loop-in-a-loop/23772/2 "2017-02-20T19:46:18Z")

</div>

Something like this should work:

- name: Set up authorized\_keys for the deploy user  
&nbsp;&nbsp;&nbsp;authorized\_key: user=root key="{{ lookup('file', 'public\_keys/{{ item.name }}/authorized\_key') }}"  
&nbsp;&nbsp;&nbsp;with\_items: pcs

---

<div class="post-metadata">

**Author:** ![Acrobis\_Nubian](https://avatars.discourse-cdn.com/v4/letter/a/c4cdca/32.png) [@Acrobis\_Nubian](https://forum.ansible.com/u/Acrobis_Nubian)\
**Post date:** [February 21, 2017, 4:54pm UTC](https://forum.ansible.com/t/loop-in-a-loop/23772/3 "2017-02-21T16:54:51Z")

</div>

Thanks Kai! That’s another way of looking at the problem 🙂 Much appreciated!

But also I’m still curious, if I’d need to do a loop in a loop like I intended in the previous example, is it possible to do that in Ansible?

Kind regards,  
Acrobis

---

<div class="post-metadata">

**Author:** ![Kai\_Stian\_Olstad](https://avatars.discourse-cdn.com/v4/letter/k/e19adc/32.png) [@Kai\_Stian\_Olstad](https://forum.ansible.com/u/Kai_Stian_Olstad)\
**Post date:** [February 21, 2017, 5:23pm UTC](https://forum.ansible.com/t/loop-in-a-loop/23772/4 "2017-02-21T17:23:46Z")

</div>

To do a loop in a loop in Ansible, you need to put the inner loop in a yaml file, and the use - include: with a loop and loop\_control.  
You can see an example here:  
[https://docs.ansible.com/ansible/playbooks\_loops.html#loop-control](https://docs.ansible.com/ansible/playbooks_loops.html#loop-control)

---

<div class="post-metadata">

**Author:** ![Acrobis\_Nubian](https://avatars.discourse-cdn.com/v4/letter/a/c4cdca/32.png) [@Acrobis\_Nubian](https://forum.ansible.com/u/Acrobis_Nubian)\
**Post date:** [February 21, 2017, 6:26pm UTC](https://forum.ansible.com/t/loop-in-a-loop/23772/5 "2017-02-21T18:26:41Z")

</div>

Thanks Kai! You were really helpful!

Kind regards,  
Acrobis
