Я пытаюсь получить факт от другого хоста в своем доступном сценарии:
- hosts: localhost
tasks:
- site_facts: name={{ var }}
- hosts: "{{ apphost }}"
tasks:
- shell:
command: docker inspect --format='\{\{.Image\}\}' {{ dbname }}
register: imagehash
- hosts: some_host
tasks:
- debug: var=hostvars[apphost].inventory_hostname
- debug: var=hostvars['localhost'].inventory_hostname
Сложность заключается в том, что переменная apphost, переданная с помощью --extra-vars, содержит имя тега хоста на ec2.
Однако hostvars
list использует IP-адрес в качестве ключа, поэтому я получаю эту ошибку:
fatal: [192.168.XX.XX] => Failed to template {{hostvars[apphost].inventory_hostname}}: host not found: tag_Name_docker1
Есть идеи, как мне получить этот факт от этого хозяина?
Правильная переменная кажется
- debug: var=hostvars[groups[apphost][0]].inventory_hostname
вместо того
- debug: var=hostvars[apphost].inventory_hostname