ansible - ansible 库存,从另一台主机获取变量
问题描述
我试图弄清楚如何最好地安排我的库存、组变量和主机变量。有问题的资产涉及连接到少数思科 WAN 网关的许多思科路由器。我需要弄清楚如何最好地划分分组,以便在向客户推出更改时可以参考具体细节。路由器相当简单;每个路由器将位于一组 [路由器]、[客户名称] 和 [路由器型号] 中。
每个 Cisco 路由器都将连接到一个或两个 WAN 网关。作为我正在寻找的那种事情的一个例子,我想指定主 WAN 网关,然后从那里能够查找 WGW 公共 IP、BGP AS 等。
除了上述“全局变量”之外,我还需要访问每个 WAN 网关上特定于该客户的详细信息。我可以从 CPE 上的信息中拼凑出一些变量,但我不确定我是否也应该将每个 WAN 网关的 hostvar 文件细分为每个客户的组。
总而言之,当我为主机运行剧本时,我需要它从 host_vars 中的另一台主机访问变量
解决方案
好的,如果我在此 hosts hostvars 文件中引用另一个主机的主机名,即:
primary_wgw: WGW001
然后在 WAN 网关 hostvars 文件中,我可以拥有:
public_ip: x.x.x.x
test_var: test
test_router_01:
destination_ip: x.x.x.x
test: x.x.x.x
我可以像这样引用变量:
- name: test variable
debug:
msg: "{{ hostvars[primary_wgw]['public_ip'] }}"
- name: test variable
debug:
msg: "{{ hostvars[primary_wgw][inventory_hostname]['test'] }}"
推荐阅读
- javascript - TopoJson 地图不在 react-simple-map 模块中呈现
- anylogic - 在节点/路径末端堆叠代理
- azure - 从脚本更新 Azure CDN 自定义域证书
- python - 是否有更快的替代方法来删除 Pandas 中的停用词和标点符号?
- python - 通过 RandomizedSearchCV 在 Keras (MLP) 中调整超参数
- git - 在 git hooks 中合并 SQLite 文件
- android - Android本地存储-(无数据库)
- linux - Linux 桌面文件 Bash 命令中的日期命令
- google-apps-script - 通过 Google Apps 脚本向图表添加水平轴
- node.js - 使用 express 进行对象的垃圾收集