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 <jordantcasti...@gmail.com> 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 ansible-project+unsubscr...@googlegroups.com.
> 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 ansible-project+unsubscr...@googlegroups.com.
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.

Reply via email to