variables - example - ansible playbook hosts variable
Ansible: ¿Cómo usar las variables definidas en el archivo de inventario(hosts) en mi libro de jugadas? (1)
Hacer lo siguiente debería funcionar:
debug: msg="foo={{foo}}"
La variable foo
se evaluará en el contexto del host actual. Probado localmente con ansible 1.3.4.
Como dice el sujeto. Tengo algunas variables de host definidas en mi archivo de inventario de hosts. ¿Cómo puedo acceder a ellos en mi libro de jugadas?
Aquí hay un ejemplo. Basándome en todas mis investigaciones, esperaba que foo
y bar
formaran parte de hostvars
. Puedo colocar variables específicas del host en archivos var separados, pero me encantaría mantenerlas en mi archivo de inventario "adjunto" a un host. No quiero usarlo en plantillas. Versión ansible: 1.3.2, ansible_distribution_version: 6.4
bash $
bash $ ansible --version
ansible 1.3.2
bash $
bash $ cat test_inv.ini
[foobar]
someHost foo="some string" bar=123
someOtherHost foo="some other string" bar=456
bash $
bash $ cat test.yml
---
- name: test variables...
hosts: all
vars:
- some_junk: "1"
# gather_facts: no # foo and bar are unavailable whether I gather facts or not.
tasks:
- debug: msg="hostvars={{hostvars}}"
- debug: msg="vars={{vars}}"
- debug: msg="groups={{groups}}"
- debug: msg="some_junk={{some_junk}}"
# - debug: msg="???? HOW DO I PRINT values of host specific variables foo and bar defined in inventory file ???"
bash $
bash $
bash $ ansible-playbook -i test_inv.ini test.yml
PLAY [test variables...] ******************************************************
GATHERING FACTS ***************************************************************
ok: [someHost]
TASK: [debug msg="hostvars={{hostvars}}"] *************************************
ok: [someHost] => {"msg": "hostvars={''someHost'': {u''facter_operatingsystem'': u''RedHat'', u''facter_selinux_current_mode'': u''enforcing'', u''facter_hostname'': u''someHost'', ''module_setup'': True, u''facter_memoryfree_mb'': u''1792.70'', u''ansible_distribution_version'': u''6.4'' // ...........snip...........// u''VMware IDE CDR10''}}"}
TASK: [debug msg="vars={{vars}}"] *********************************************
ok: [someHost] => {"msg": "vars={''some_junk'': ''1'', ''delegate_to'': None, ''changed_when'': None, ''register'': None, ''inventory_dir'': ''/login/sg219898/PPP/automation/ansible'', ''always_run'': False, ''ignore_errors'': False}"}
TASK: [debug msg="groups={{groups}}"] *****************************************
ok: [someHost] => {"msg": "groups={''ungrouped'': [], ''foobar'': [''someHost''], ''all'': [''someHost'']}"}
TASK: [debug msg="some_junk=1"] ***********************************************
ok: [someHost] => {"msg": "some_junk=1"}
PLAY RECAP ********************************************************************
someHost : ok=5 changed=0 unreachable=0 failed=0
bash $