I see. Thanks for your response. Are you aware of a good way to use the vars within the role? It seems like import_role would do that, but would not permit the loop.
On Mon, Jan 11, 2021 at 3:20 PM Matt Martz <[email protected]> wrote: > 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 > <https://groups.google.com/d/msgid/ansible-project/CAD8N0v-mGnXo5YXk9vmdofxhZ%2BXf-1YKGth_gYM%3D3bofkpy%3D1Q%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- 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/CABKZac_-t854NcDve3jaCt0mbj14EB-0Hv_PLWmS-wjNm5PNdQ%40mail.gmail.com.
