Last night, I ran a playbook that had a group specified for hosts. That group has a custom variable defined in my inventory. On the command line I used --limit=jupiter to test on a single host. The defined hostvar was not loaded, apparently, because my machine had patches installed from a 32-bit mounted repo rather than 64-bit. Just a few days ago, I ran this playbook for the whole group with no problems, so the hostvar was correctly read then.
The command-line:
$ ansible-playbook slack_lab_update.yml --limit=jupiter
My hosts defined in the playbook:
- hosts: slackware-lab-64
sudo: yes
roles:
- slack_lab
post_tasks:
- name: Reboot host(s)?
In the /etc/hosts file, I have the group, with a set variable, as follows:
[slackware-lab-64]
192.168.0.[30:53]
jupiter
linux1
linux2
linux3
[slackware-lab-64:vars]
lib_arch=64
Well, I did have this var defined, until last night. I ended up re-installing the machine. Now, I have replaced every lib_arch custom variable reference in every playbook with ansible_userspace_bits, since I figured out that is an option. However, Ansible should probably have read that variable for my one host, since it is a member of the group.
$ ansible --version
ansible 2.1.0