The output shows `[localhost -> 10.20.31.35] ` which indicates it is delegating from `localhost` to `10.20.31.35`, however this is only for the connection. Any templating done in the task definition uses the values of the host in the loop, which is `localhost`.
On Mon, Jan 11, 2021 at 5:11 PM Jordan C <[email protected]> wrote: > > I am trying to debug a playbook I've written which uses a couple of roles > to spin up and then configure an AWS instance. > > The basic structure is one playbook (`new-server.yml`) imports two roles > -- `roles/ec2_instance` and `roles/start_env`. The ec2_instance role should > be ran on localhost with my AWS tokens and then the start_env role gets ran > on servers which are generated by the first role. > > My playbook `new-server.yml` starts off like this: > > - name: provision new instance > include_role: > name: ec2_instance > public: yes > vars: > instance_name: "{{ item.host_name }}" > env: "{{ item.git_branch }}" > env_type: "{{ item.env_type }}" > loop: > - { host_name: 'prod', git_branch: 'master', env_type: 'prod' } > - { host_name: 'test', git_branch: 'test', env_type: 'devel'} > > This role builds an ec2 instance, updates route 53, uses add_host to add > the host to the in-memory inventory in the `just_created` group. > > Next, I have this in the `new_server.yml` playbook. Both of my IPs show up > here just fine. My localhost does not show up here. > > > - name: debug just_created group > debug: msg="{{ groups['just_created'] }}" > > > Finally, again in `new_server.yml`, I try to do the last mile > configuration and start my application on the new instance: > > - name: Configure and start environment on new instance > include_role: > name: start_env > apply: > become: yes > delegate_to: "{{ item }}" > with_items: > - "{{ groups['just_created'] }}" > > However, it doesnt look like the task is delegating properly, because I > have this task in `roles/start_env/main.yml`: > > - name: debug hostname > debug: msg="{{ ansible_hostname }}" > > And what I'm seeing in my output is > > > TASK [start_env : debug hostname] > ************************************************************************************************************************************ > Monday 11 January 2021 12:00:05 -0800 (0:00:00.111) 0:00:37.374 > ******** > ok: [localhost -> 10.20.15.225] => { > "msg": "My-Local-MBP" > } > > TASK [start_env : debug hostname] > ************************************************************************************************************************************ > Monday 11 January 2021 12:00:05 -0800 (0:00:00.043) 0:00:37.417 > ******** > ok: [localhost -> 10.20.31.35] => { > "msg": "My-Local-MBP" > } > > I've read a lot about delegate_to, include_role and loops this morning. It > sounds like Ansible has made things pretty complicated when you want to > combine these things, but it also seems like the way I am trying to invoke > these should be right. Any idea what I'm doing wrong (or if there is a > smarter way to do this? I found this -- > https://medium.com/opsops/ansible-2-5-delegate-to-and-include-role-20cd7e67008e > -- and while its a clever workaround, it doesn't quite fit what I'm seeing > and I'd like to avoid creating another tasks file in my roles. Not exactly > how I want to manage something like this. Most of the information I've been > going off of has been this thread: > > https://github.com/ansible/ansible/issues/35398 > > -- > 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/6b671e51-1bf1-4dd2-8b61-fae9590fa32en%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/6b671e51-1bf1-4dd2-8b61-fae9590fa32en%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- Matt Martz @sivel sivel.net -- 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/CAD8N0v-mGnXo5YXk9vmdofxhZ%2BXf-1YKGth_gYM%3D3bofkpy%3D1Q%40mail.gmail.com.
