# \--limit and groups variable inconsistency

**URL:** <https://forum.ansible.com/t/limit-and-groups-variable-inconsistency/20081>\
**Category:** Ansible Developer\
**Created:** [December 28, 2015, 5:52pm UTC](https://forum.ansible.com/t/limit-and-groups-variable-inconsistency/20081 "2015-12-28T17:52:04Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Anatoly\_Zozlinsky](https://avatars.discourse-cdn.com/v4/letter/a/b487fb/32.png) [@Anatoly\_Zozlinsky](https://forum.ansible.com/u/Anatoly_Zozlinsky)\
**Post date:** [December 28, 2015, 5:52pm UTC](https://forum.ansible.com/t/limit-and-groups-variable-inconsistency/20081/1 "2015-12-28T17:52:04Z")

</div>

Hi,

I use dynamic ec2 inventory.

i tag hosts with tag ENV and call ansible with --limit tag\_ENV\_staging to get only hosts of staging  
At the same time, i have another ENV called production

in my template i use loop on groups[‘mgmt’] to get list of all ‘mgmt’ hosts to put them to some config file

{% for host in groups[‘mgmt’] %}{{ hostvars[host][ec2\_private\_ip\_address] }}{% if not loop.last %},{% endif %}{% endfor %}

but i got both staging and production hosts, but template is updated only on staging

it is possible that --limit has bug or groups is not respect --limit??

---

<div class="post-metadata">

**Author:** ![Anatoly\_Zozlinsky](https://avatars.discourse-cdn.com/v4/letter/a/b487fb/32.png) [@Anatoly\_Zozlinsky](https://forum.ansible.com/u/Anatoly_Zozlinsky)\
**Post date:** [December 28, 2015, 5:52pm UTC](https://forum.ansible.com/t/limit-and-groups-variable-inconsistency/20081/2 "2015-12-28T17:52:50Z")

</div>

ansible version 1.9.2

---

<div class="post-metadata">

**Author:** ![Brian\_Coca](https://avatars.discourse-cdn.com/v4/letter/b/6de8d8/32.png) [@Brian\_Coca](https://forum.ansible.com/u/Brian_Coca)\
**Post date:** [December 28, 2015, 5:56pm UTC](https://forum.ansible.com/t/limit-and-groups-variable-inconsistency/20081/3 "2015-12-28T17:56:48Z")

</div>

limit affects the hosts: in a play, not the information about hosts in  
each group, what you want to do is loop over an intersection:

groups['mgmg']|intersect(groups['tag\_ENV\_staging')])

or if you want it dynamically, you can use play\_hosts (list of current  
hosts in play)

groups['mgmg']|intersect(play\_hosts)

---

<div class="post-metadata">

**Author:** ![Anatoly\_Zozlinsky](https://avatars.discourse-cdn.com/v4/letter/a/b487fb/32.png) [@Anatoly\_Zozlinsky](https://forum.ansible.com/u/Anatoly_Zozlinsky)\
**Post date:** [December 29, 2015, 8:51am UTC](https://forum.ansible.com/t/limit-and-groups-variable-inconsistency/20081/4 "2015-12-29T08:51:38Z")

</div>

Ok, i understand,  
Your solution is good for me… Thanks.

But, maybe, you need to add some explanation to docs or add additional var current\_groups/limited\_groups ??

---

<div class="post-metadata">

**Author:** ![Eric\_Feliksik](https://avatars.discourse-cdn.com/v4/letter/e/9e8a1a/32.png) [@Eric\_Feliksik](https://forum.ansible.com/u/Eric_Feliksik)\
**Post date:** [December 29, 2015, 11:51am UTC](https://forum.ansible.com/t/limit-and-groups-variable-inconsistency/20081/5 "2015-12-29T11:51:01Z")

</div>

Anatoly, please also be aware that you might be bitten by [https://github.com/ansible/ansible/issues/12174](https://github.com/ansible/ansible/issues/12174) .

---

<div class="post-metadata">

**Author:** ![Anatoly\_Zozlinsky](https://avatars.discourse-cdn.com/v4/letter/a/b487fb/32.png) [@Anatoly\_Zozlinsky](https://forum.ansible.com/u/Anatoly_Zozlinsky)\
**Post date:** [December 29, 2015, 4:15pm UTC](https://forum.ansible.com/t/limit-and-groups-variable-inconsistency/20081/6 "2015-12-29T16:15:11Z")

</div>

no, this is not my case
