Hello,

I would like to copy some files specified by a group_var. But while running 
my playbook I got the fatal error that the variable given is undefined. But 
first things first. My directory structure looks like:
roles/mgmt/
|-- files
|   |-- foo
|   `-- bar
|-- group_vars
|   `-- mgmt
|-- handlers
|   `-- main.yml
|-- tasks
|   `-- main.yml
`-- templates
    `-- example.j2

I use a inventory file for staging which lies next to the directory roles 
and contains a specific group among other things:
# ls -l
drwxr-xr-x. 2 root  root  4096 Aug  3  2016 group_vars
drwxr-xr-x. 2 root  root  4096 Jul 14  2016 host_vars
-rw-r--r--. 1 root  root  2962 Feb 20 15:23 hosts
drwxr-xr-x. 7 root  root  4096 Feb 20 13:30 roles
-rw-r--r--. 1 root  root   169 Feb 20 15:19 mgmt.yml
-rw-r--r--. 1 root  root   284 Feb 20 14:37 staging

# cat staging
[mgmt]
rhel-t2.example.com

My mgmt.yml looks as follows:
---
- hosts: all
  tasks:
    - name: Group by OS
      group_by: key=os_{{ ansible_distribution }}
      changed_when: False

- hosts: os_RedHat
  roles:
    - mgmt

The role 'mgmt' should apply to all hosts in my inventory that run with an 
Red Hat Enterprise Linux on it. My tasks file from 
'roles/mgmt/tasks/main.yml' contains:
---
  - name: upload mgmtuser files
    copy:
      src: /data/ansible/roles/mgmt/files/{{ item }}
      dest: /opt/dest/
      owner: 0
      group: 0
      mode: 0644
    with_items: "{{ mgmtusers }}"

And the content of my 'roles/mgmt/group_vars/mgmt' is:
---
mgmtusers:
  - bar

Running the playbook mgmt.yml gives the following output:
# ansible-playbook -i staging mgmt.yml

PLAY [all] 
*********************************************************************
TASK [setup] 
*******************************************************************ok: [rhel
-t2.example.com]

TASK [Group by OS] 
*************************************************************ok: [rhel-t2.
example.com]

PLAY [os_RedHat] 
***************************************************************
TASK [setup] 
*******************************************************************ok: [rhel
-t2.example.com]

TASK [mgmt : upload mgmtuser files] 
***********************************************fatal: [rhel-t2.example.com]: 
FAILED! => {"failed": true, "msg": "'mgmtusers' is undefined"}
        to retry, use: --limit @/data/ansible/mgmt.retry

PLAY RECAP 
*********************************************************************rhel-t2
.example.com : ok=3    changed=0    unreachable=0    failed=1

Why does ansible not recognize the variable mgmtusers set in 
roles/mgmt/groups_vars/mgmt? Did I make an mistake somewhere in the syntax 
or is there something I did not think about yet?

Thanks in advance for your help.

Best regards,
Joerg

-- 
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/a8bf904a-af41-4775-b744-2a13410bfbce%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to