Q: «Как читать переменную хоста?»
A: Просто укажите ссылку на переменную
- command: echo {{ uname }}
Для пример инвентаря и сценария ниже
shell> cat hosts
[webserver]
test_01 uname=abc123
test_02 uname=pqr456
shell> cat playbook.yml
- hosts: all
tasks:
- debug:
var: uname
give (сокращенно)
shell> ansible-playbook -i hosts playbook.yml
ok: [test_01] =>
uname: abc123
ok: [test_02] =>
uname: pqr456
Используйте
hostvars для ссылки на переменные, зарегистрированные на других хостах . Например,
shell> cat playbook.yml
- hosts: localhost
tasks:
- debug:
var: hostvars[item].uname
loop: "{{ groups.webserver }}"
дает (сокращенно)
shell> ansible-playbook -i hosts playbook.yml
ok: [localhost] => (item=test_01) =>
ansible_loop_var: item
hostvars[item].uname: abc123
item: test_01
ok: [localhost] => (item=test_02) =>
ansible_loop_var: item
hostvars[item].uname: pqr456
item: test_02
Примечания
"... может быть лучше использовать вместо этого командный модуль ... "