【发布时间】:2020-04-03 07:19:35
【问题描述】:
是否可以将值存储在变量中并跨多个主机使用。我发现它应该与 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']”未定义”。
谢谢
【问题讨论】:
-
如果你想使用全局变量,你可以在包含变量文件中创建一个变量文件,并在前置任务中使用 include_vars 并使用它。
-
我不想要全局变量。变量 zone_id 中的值基于 IP 地址。我有多个条件和不同的 ip 子网我有不同的 zone_id 基于用户输入。而且我需要在其他主机中使用变量 zone_id 的内容。
标签: ansible