Hostvars giving me undefined error

Hi

Iam trying to access the variable from other hosts using hostvars. I am getting the undefined error.
Can anybody help me: stuck at this point

  • hosts: yum
    gather_facts: false
    vars:
    file_locn: “/san/repos/{{ version }}/packages”
    tasks:

  • name: Find the Packages that are present in File location
    shell: ls -lrt {{ file_locn }} |awk ‘NR>1{print $9}’|grep -i rpm
    register: files_present

  • name: Set Fact
    set_fact:
    some_value: “{{ files_present.stdout_lines }}”

  • debug:
    msg: “{{ some_value }}”

  • hosts: localhost
    gather_facts: false
    tasks:

  • name: Show hostvars
    debug:
    msg: “{{ hostvars[‘yum’][‘some_value’] }}”

error:

PLAY [yum] ***********************************************************************************************************************************************************

TASK [Find the Packages that are present in File location] ***********************************************************************************************************
changed: [YUM01]

TASK [Set Fact] ******************************************************************************************************************************************************
ok: [YUM01]

TASK [debug] *********************************************************************************************************************************************************
ok: [YUM01] => {
“msg”: [
“common-3.0.12.rpm”,

]
}

PLAY [localhost] *****************************************************************************************************************************************************

TASK [Show hostvars] *************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {“msg”: “The task includes an option with an undefined variable. The error was: "hostvars[‘yum’]" is undefined\n\nThe error appears to be in ‘/home/rparida1/raka1111.yml’: line 20, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n tasks:\n - name: Show hostvars\n ^ here\n”}

PLAY RECAP ***********************************************************************************************************************************************************
YUM01 : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
localhost : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0

Is ‘yum’ a group name perhaps?

Hi,

You should better use the find module instead of shell module and ls.

As said, yum seem to be a group… To use hostvars special variable you need to use host and not group…

Something like this will work :

msg: “{{ hostvars[‘YUM01’][‘some_value’] }}”

But instead of asking to remove your error, perhaps you could explain what you want to do…

Regards,

JYL

Yum is a hostname ina group variable
And der are multiple yum server entries

I had already tried d same but same error

Hi Dick/Jean,

My inventory file has only one entry of yum…
Now i have also tried to use :

  • name: Show hostvars
    debug:
    msg: “{{ hostvars[groups[‘yum’][‘some_value’] }}”

But still i get same error
I think iam doing some error in syntax…
as i keep getting the undefined error

Pls suggest

You playbook only takes into account "localhost", as a result any
other hostvars will be undefined.