A variável apropriada parece ser
- debug: var=hostvars[groups[apphost][0]].inventory_hostname
em vez de
- debug: var=hostvars[apphost].inventory_hostname
Estou tentando obter um fato de outro host no meu ansioso manual de instruções:
- 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
A parte complicada é que a variável 'apphost', passada com --extra-vars, contém o nome da tag do host em ec2.
No entanto, a lista hostvars
usa ip address como uma chave, portanto, recebo este erro:
fatal: [192.168.XX.XX] => Failed to template {{hostvars[apphost].inventory_hostname}}: host not found: tag_Name_docker1
Alguma idéia de como devo obter o fato deste host?
A variável apropriada parece ser
- debug: var=hostvars[groups[apphost][0]].inventory_hostname
em vez de
- debug: var=hostvars[apphost].inventory_hostname
Tags amazon-ec2 ansible