Ansible - 在远程主机模板中使用来自本地主机的事实

Ansible - use fact from local host in remote host template

我有一个包含本地主机角色和远程主机角色的剧本。

在其中一个本地主机角色中,我设置了一个名为 git_tag 的事实。

我想在远程主机的模板中使用这个事实。

我试过了:

- name: Read Version
  set_fact:
    git_tag: "{{ package_json.stdout | from_json | json_query('version')}}"
  delegate_to: "test-server"

但是当 Ansible 到达读取具有 {{ git_tag }} 的模板的角色时,它说 git_tag is undefined.

我确定我做错了什么。我该怎么做?

你应该使用 hostvars magic variable:

{{ hostvars['localhost']['git_tag'] }}