Awesome Matt!
I knew it had to exist somewhere.
Thanks for sharing.
On Thursday, 5 November 2015 23:26:48 UTC+11, Matt Martz wrote:
>
> A few ways potentially:
>
> {{ play_hosts.index(inventory_hostname) }}
>
> If you want to know host index within a play
>
>
> Or:
>
> {{ groups.somegroup.index(inventory_hostname) }}
>
> For getting the index of a host within a group.
>
>
>
> On Wednesday, November 4, 2015, Rob White <[email protected]
> <javascript:>> wrote:
>
>> Unfortunately not. I'm not iterating over a list. Ansible is just
>> making it's way through a group of hosts so i need Ansible to tell me which
>> host it is operating on.
>>
>>
>>
>> On Thursday, 5 November 2015 16:30:01 UTC+11, Mirko Friedenhagen wrote:
>>>
>>> Hello Rob,
>>>
>>> maybe
>>> http://docs.ansible.com/ansible/playbooks_loops.html#looping-over-a-list-with-an-index
>>>
>>> might help.
>>>
>>> Regards
>>> Mirko
>>> Regards Mirko
>>> --
>>> http://illegalstateexception.blogspot.com/
>>> https://github.com/mfriedenhagen/ (http://osrc.dfm.io/mfriedenhagen)
>>> https://bitbucket.org/mfriedenhagen/
>>>
>>>
>>> On Thu, Nov 5, 2015 at 5:43 AM, Rob White <[email protected]> wrote:
>>> > I'm sure this must've come up before but I couldn't find an answer.
>>> >
>>> > I have a list of hosts in a group. I want to write an index number on
>>> each
>>> > of those hosts in a file. E.g. the first host has a file that
>>> contains 1,
>>> > the second host has a file that contains 2 etc.
>>> >
>>> > Now I know I can access the hosts using the groups variable E.g.
>>> > groups["mygroup"] but i can't find any reference to an index so the
>>> host can
>>> > find out which number it is.
>>> >
>>> > Example play
>>> >
>>> > ...
>>> >
>>> > - name: Add instance to new host group
>>> >
>>> > add_host:
>>> >
>>> > name: "{{ item }}"
>>> >
>>> > group: zk
>>> >
>>> > with_items:
>>> >
>>> > - server1
>>> >
>>> > - server2
>>> >
>>> > - server3
>>> >
>>> >
>>> > - name: deploy to zk group
>>> >
>>> > hosts: zk
>>> >
>>> > tasks:
>>> >
>>> > - name: write a myid file based on the position in the group
>>> >
>>> > copy:
>>> >
>>> > content: {{ some_magic_variable?????? }}
>>> >
>>> > dest: /zookeeper-data/myid
>>> >
>>> >
>>> >
>>> > In the above server i would expect to end up with three servers each
>>> with a
>>> > myid file that contains 0, 1 or 2
>>> >
>>> >
>>> > Anyone know if that magic variable exists?
>>> >
>>> > --
>>> > 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 post to this group, send email to [email protected].
>>> > To view this discussion on the web visit
>>> >
>>> https://groups.google.com/d/msgid/ansible-project/c3dec262-b1b5-414f-88ba-c326d4ccd93e%40googlegroups.com.
>>>
>>>
>>> > For more options, visit https://groups.google.com/d/optout.
>>>
>> --
>> 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 post to this group, send email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/ansible-project/7b22d364-82e2-40ff-b3ac-81f2b296d03b%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/ansible-project/7b22d364-82e2-40ff-b3ac-81f2b296d03b%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
> --
> 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 post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/8d3dcada-60b2-4987-af45-8dda8f85da17%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.