是否可以将值存储在变量中并在多个主机之间使用。我发现它应该与set_fact一起使用,所以我尝试了这样。但这不起作用。
- hosts: db
remote_user: root
tasks:
- name: set fact
set_fact:
zone_id: "app"
subnet_id: 28
when: host_ip.find("10.1.30") != -1
....
- hosts: ns01
remote_user: root
tasks:
- name:
debug:
var: "{{ hostvars['db']['zone_id'] }}"
....
但是我收到以下错误消息:“任务包括带有未定义变量的选项。错误为:“ hostvars ['db']”未定义”。
谢谢
答案 0 :(得分:0)
set_fact
用于从主机提取信息并将其保存以备后用。它用于获取随时间变化的信息。
它将信息保存为常规变量,因此您将能够以{{ zone_id }}
的身份访问它。
主机变量用于存储有关主机之间的“静态”信息,这些信息在主机之间可能会有所不同,因此,如果此区域未更改,请将其放入主机变量中。如果需要在运行时进行检查,请使用set_fact