在Ansible中,可以通过使用facts(事实)或注册变量来获取来自另一台主机的变量。
方法1:使用facts(事实) 在Ansible中,可以使用facts(事实)来收集主机的信息,包括变量。可以通过在任务中设置gather_facts为true来启用事实收集。然后可以使用ansible_facts变量来访问来自另一台主机的变量。
示例代码:
- name: 获取主机变量
hosts: target_host
gather_facts: true
tasks:
- name: 显示所有事实
debug:
var: ansible_facts
- name: 使用另一台主机的变量
debug:
var: ansible_facts.other_host_variable
方法2:使用注册变量 可以使用register关键字将任务的输出存储在一个变量中,并在之后的任务中使用。
示例代码:
- name: 获取主机变量
hosts: target_host
gather_facts: false
tasks:
- name: 获取另一台主机的变量
shell: echo "other_host_variable"
register: result
- name: 显示来自另一台主机的变量
debug:
var: result.stdout
这里的shell模块只是一个示例,你可以根据实际情况使用不同的模块。
使用以上方法之一,你就可以在Ansible中获取来自另一台主机的变量了。