set_fact 定义变量可以在同一主机组中play相互引用,但是vars定义的变量,只能在单独的play使用
示例:
[root@jack7-1 work]# cat set_fact.yml
-
hosts: PA
remote_user: root
vars: ================>如果在下个play中引用会报错
var2: "I a test var for vars"
tasks:- set_fact: ================>可以在同组中多个play引用
var1: "I a test var for set_fact" - debug:
msg: "{{var1}}++++{{var2}}" - name: shell return
shell: "hostname"
register: shell ================>注册shell输出结果为变量 - set_fact:
var3: "{{shell.end}}" ==========>引用shell的输出结果的end赋值给变量 - debug:
msg: "{{var3}}"
- set_fact: ================>可以在同组中多个play引用
- hosts: PA
remote_user: root
tasks:- debug:
msg: "{{var1}}-----{{var3}}" =======>可以在这个play中调用set_fact定义的变量
- debug:
来源:oschina
链接:https://my.oschina.net/u/4404541/blog/4550057