Per the documentation and this thread: https://groups.google.com/d/msg/ansible-project/rE8aVu4LNS0/sGKweGPvffoJ I *think* that debug: var=hostvars should print all the variables in scope (for each host). I'm not sure what var=vars is - non-host-specific variables?
In either case, I'm getting extremely odd behavior that I can't figure out. I'm sorry this is long, but it is hopefully easy to follow and I suspect is either a simple answer or there is a bug. (some stuff removed for brevity or security) Here is my command line: ansible-playbook playbook.yml --inventory-file dynamic_inventory.sh --limit stage --user xxx --private-key xxx.pub -e IS_VAGRANT=False -C Here is the result of my dynamic inventory for host 'stage' { "hosts": [ "192.xxx.xxx.176" ], "vars": { "HOST_NAME": "stage.yyyyyyyyy.com", "SERVER_NAME": "stage.yyyyyyyyy.com" } } Now here are the key plays, and results, from my playbook - debug: var=vars >> This looks pretty good (but note it doesn't show variables from my inventory) PLAY [all] ******************************************************************** TASK: [baseUbuntu | debug var=vars] ******************************************* ok: [192.xxx.xxx.176] => { "vars": { "DIFFTOOL": "git --no-pager diff", ... <DELETED - but *no* HOST_NAME> ... "IS_VAGRANT": "False", ... <DELETED - but *no* SERVER_NAME> ... "_original_file": "/Users/xxxxxx/tmp/thissite/ansible_config/roles/baseUbuntu/tasks/main.yml", "always_run": false, "changed_when": null, "delegate_to": null, ... <DELETED> ... "role_uuid": "160302ff-f06f-4a78-8204-f0fcc4a8c750" } } - debug: var=hostvars >> This looks wrong to me. Shouldn't it either be a superset of vars and my inventory variables? (HOST_NAME and SERVER_NAME) TASK: [baseUbuntu | debug var=hostvars] *************************************** ok: [192.xxx.xxx.176] => { "hostvars": { "192.xxx.xxx.176": { "IS_VAGRANT": "False" } } } Hmmm... maybe I I'm not properly setting my inventory variables. Nope! See 'HOST_NAME' is properly set. Why doesn't it show up in vars or hostvars? - debug: msg="HOST_NAME = *{{ HOST_NAME }}*" TASK: [baseUbuntu | debug msg="HOST_NAME = *{{ HOST_NAME }}*"] **************** ok: [192.xxx.xxx.176] => { "msg": "HOST_NAME = *stage.yyyyyyyyy.com*" } And this one is even weirder. I use {{ HOST_NAME }} and in the "name" clause it doesn't render and in the hostname clause it does! - name: "Set hostname to {{ HOST_NAME }}" hostname: name="{{ HOST_NAME }}" TASK: [baseUbuntu | debug msg="HOST_NAME = *{{ HOST_NAME }}*"] **************** ok: [192.xxx.xxx.176] => { "msg": "HOST_NAME = *stage.yyyyyyyyy.com*" } I'm baffled - I'd appreciate any tips. Thank you! -- 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 ansible-project+unsubscr...@googlegroups.com. To post to this group, send email to ansible-project@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/474c431e-8108-4739-a31d-f1c0461d76c2%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.