# HELP using group\_vars and roles

**URL:** <https://forum.ansible.com/t/help-using-group-vars-and-roles/23274>\
**Category:** Ansible Project\
**Created:** [December 16, 2016, 5:43pm UTC](https://forum.ansible.com/t/help-using-group-vars-and-roles/23274 "2016-12-16T17:43:47Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Eric\_Marquez](https://avatars.discourse-cdn.com/v4/letter/e/9d8465/32.png) [@Eric\_Marquez](https://forum.ansible.com/u/Eric_Marquez)\
**Post date:** [December 16, 2016, 5:43pm UTC](https://forum.ansible.com/t/help-using-group-vars-and-roles/23274/1 "2016-12-16T17:43:47Z")

</div>

I have a question about the use of group\_vars in Ansible. I would like to use the data dictionaries values from swtich.json, I also need it to be global set of values almost like all. When I call it in Ansible it becomes unknown... Is there a way to do it?

Ansible debug output:  
TASK [basebmc : debug] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
task path: /mnt/c/Users/emarq/Documents/Source/Repos/Solutions.Network.Automation/MAS/Ansible/hpe/roles/basebmc/tasks/main.yml:20  
fatal: [b43-1u15-d00-5900AFbmc]: FAILED! =\> {  
&nbsp;&nbsp;&nbsp;&nbsp;"failed": true,  
&nbsp;&nbsp;&nbsp;&nbsp;"msg": "the field 'args' has an invalid value, which appears to include a variable that is undefined. The error was: dict object has no element 5900\n\nThe error appears to have been in '/mnt/c/Users/emarq/Documents/Source/Repos/Solutions.Network.Automation/MAS/Ansible/hpe/roles/basebmc/tasks/main.yml': line 20, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- debug:\n ^ here\n"  
}

group\_vars/  
baseagg.yml basebmc.yml basetor.yml switch.json

Ansible.hosts:  
[swtich:children]  
&nbsp;&nbsp;basebmc  
[basebmc]  
&nbsp;&nbsp;bmcdevice1

Role baesbmc/tasks/main.yml:  
- debug:  
&nbsp;&nbsp;&nbsp;&nbsp;msg: "name: {{ inventory\_hostname }} {{ portmap.HPE.5900.Port.46.Port }}"  
&nbsp;&nbsp;&nbsp;&nbsp;verbosity: 4  
&nbsp;&nbsp;with\_dict: "{{ portmap }}"

playbook.yml

---

<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 16, 2016, 7:07pm UTC](https://forum.ansible.com/t/help-using-group-vars-and-roles/23274/2 "2016-12-16T19:07:05Z")

</div>

try:  
msg: “name: {{ inventory\_hostname }} {{ portmap[‘HPE’][‘5900’][‘Port’][‘46’][‘Port’] }}”

---

<div class="post-metadata">

**Author:** ![Eric\_Marquez](https://avatars.discourse-cdn.com/v4/letter/e/9d8465/32.png) [@Eric\_Marquez](https://forum.ansible.com/u/Eric_Marquez)\
**Post date:** [December 16, 2016, 7:19pm UTC](https://forum.ansible.com/t/help-using-group-vars-and-roles/23274/3 "2016-12-16T19:19:22Z")

</div>

I updated my msg to the following.

---

<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 16, 2016, 7:36pm UTC](https://forum.ansible.com/t/help-using-group-vars-and-roles/23274/4 "2016-12-16T19:36:44Z")

</div>

Your output does not seem to match what you are saying: `{{ portmap.HPE.5900.Port.46.Type }}`

---

<div class="post-metadata">

**Author:** ![Eric\_Marquez](https://avatars.discourse-cdn.com/v4/letter/e/9d8465/32.png) [@Eric\_Marquez](https://forum.ansible.com/u/Eric_Marquez)\
**Post date:** [December 16, 2016, 9:13pm UTC](https://forum.ansible.com/t/help-using-group-vars-and-roles/23274/5 "2016-12-16T21:13:54Z")

</div>

This is very odd, when I replace 5900 with FOO, it works. What’s special about the number 5900?

TASK [basebmc : debug] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

task path: /mnt/c/Users/emarq/Documents/Source/Repos/Solutions.Network.Automation/MAS/Ansible/hpe/roles/basebmc/tasks/main.yml:20

ok: [b43-1u15-d00-5900AFbmc] =\> {

“msg”: “name:portmap[HPE][FOO][Port][46][Port]: 1/0/46”

}

---

<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 16, 2016, 9:24pm UTC](https://forum.ansible.com/t/help-using-group-vars-and-roles/23274/6 "2016-12-16T21:24:30Z")

</div>

string vs number

x[21] is not the same as x[‘21’]

---

<div class="post-metadata">

**Author:** ![Eric\_Marquez](https://avatars.discourse-cdn.com/v4/letter/e/9d8465/32.png) [@Eric\_Marquez](https://forum.ansible.com/u/Eric_Marquez)\
**Post date:** [December 16, 2016, 10:08pm UTC](https://forum.ansible.com/t/help-using-group-vars-and-roles/23274/7 "2016-12-16T22:08:11Z")

</div>

That was it. Thanks for the help.
