Ansible Azure动态资源清册和在单个剧本中在主机之间共享变量

Ansible Azure动态资源清册和在单个剧本中在主机之间共享变量,azure,dynamic,ansible,Azure,Dynamic,Ansible,问题:使用通配符从playbook中的另一个主机引用有关主机(在本例中为私有ip)的事实似乎只在playbook的“主机”部分有效,而不是在任务中有效。vm_ubuntu*不能用于任务中 在单个playbook中,我有几个主机,而且因为资源清册是动态的,所以我没有提前获得主机名,因为Azure在创建主机名后会附加一个标识符。 我正在使用TF来创建。 并使用Azure动态库存方法。 我这样称呼我的剧本,其中myazure_rm.yml是bog标准的azure动态库存方法,截至本文撰写之时 ansi

问题:使用通配符从playbook中的另一个主机引用有关主机(在本例中为私有ip)的事实似乎只在playbook的“主机”部分有效,而不是在任务中有效。vm_ubuntu*不能用于任务中

在单个playbook中,我有几个主机,而且因为资源清册是动态的,所以我没有提前获得主机名,因为Azure在创建主机名后会附加一个标识符。 我正在使用TF来创建。 并使用Azure动态库存方法。 我这样称呼我的剧本,其中myazure_rm.yml是bog标准的azure动态库存方法,截至本文撰写之时

ansible playbook-i./myazure\u rm.yml./bwaf-playbook.yaml——密钥文件~/.ssh/id\u rsa——u azureuser

我的剧本看起来像这样(缩写)


我回答自己的问题是为了获得代表,当然也是为了帮助别人。 我还要感谢第一个想到这个的人(),它出现在这里:

然后可以在剧本中的其他主机中引用,如下所示:

- hosts: vm_bwaf*
  connection: local

  vars:
    vm_bwaf_private_ip: "{{private_ipv4_addresses | join }}"
    vm_bwaf_public_ip: "{{ public_ipv4_addresses | join }}"
    vm_ubuntu_private_ip: "{{ hostvars['dummy_host']['ip'] }}"
我很高兴你这么问(即使你是错的/错误的,你可以自己去查一下,先读一读你提到的另一个问题,然后再在我的问题上发帖)这是因为现有的答案是针对不同的问题的,就像很多事情一样。您是否希望为社区做出贡献,或者您打算在这里做什么?
- name: "Save private ip to dummy host" 
  add_host: 
     name:   "dummy_host" 
     ip:     "{{ vm_ubuntu_private_ip }}"
- hosts: vm_bwaf*
  connection: local

  vars:
    vm_bwaf_private_ip: "{{private_ipv4_addresses | join }}"
    vm_bwaf_public_ip: "{{ public_ipv4_addresses | join }}"
    vm_ubuntu_private_ip: "{{ hostvars['dummy_host']['ip'] }}"