在ansible中,我在远程计算机上执行了一些代码,然后我想在另一台主机上再次使用vars_prompt
的结果。我一直在搜索,文档让我觉得我应该使用{{ hostvars.local_server_name_in_vagrant_group.local_username }}
,使用下面的示例来设置上下文。但是,它表示引用hostvars
时字典中的索引不存在。相反,如下所示,我只做两次vars_prompt
。毛!有什么提示吗?
- hosts: vagrant
vars_prompt:
local_username: "enter your desired local username"
... remote task activity using local_username...
- hosts: localhost
connection: local
vars_prompt:
local_username: "enter your desired local username, again (please)
... host task activity, also using local_username ...
答案 0 :(得分:11)
正如我在问题评论中所说:
您可以使用set_facts将变量注册为当前主机的事实,并从另一个主机访问它。我不认为标准变量存储在角色/任务之后。
以下是一个例子:
- name: First
connection: local
hosts: host1
tasks:
- name: register real root user to localhost facts
set_fact: fact_for_host1="1"
- name: Second
connection: local
hosts: host2
tasks:
- debug: msg="{{ hostvars['host1']['fact_for_host1'] }}"
请注意,connection: local
仅用于本地测试目的。