You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Shell命令获取Ansible清单中ansible_host的IP地址?

获取Ansible清单中主机IP地址的方法

以下几种方式可以直接提取inventory.yaml中主机对应的IP地址:

1. 使用debug模块输出IP变量

执行命令直接调用debug模块,打印每个主机的ansible_host变量值(即配置的IP地址):

ansible secondtest -i inventory.yaml -m debug -a "var=ansible_host"

示例输出:

host1 | SUCCESS => {
    "ansible_host": "192.168.33.168"
}
host2 | SUCCESS => {
    "ansible_host": "192.168.7.151"
}
host3 | SUCCESS => {
    "ansible_host": "192.168.33.158"
}

2. 使用ansible-inventory工具查看清单变量

ansible-inventory是Ansible官方提供的清单信息查看工具,支持多种格式输出:

  • 查看完整清单的JSON结构(包含所有主机变量):
ansible-inventory -i inventory.yaml --list
  • 查看单个主机的详细变量:
ansible-inventory -i inventory.yaml --host host1
  • 显示带变量的组拓扑图:
ansible-inventory -i inventory.yaml --graph --vars

3. 提取纯IP列表(结合文本过滤)

如果只需要纯IP地址的列表,可通过文本过滤工具处理debug模块的输出:

ansible secondtest -i inventory.yaml -m debug -a "var=ansible_host" | grep ansible_host | awk '{print $2}' | tr -d '"'

输出结果为每行一个IP:

192.168.33.168
192.168.7.151
192.168.33.158

内容的提问来源于stack exchange,提问作者LongKang Fan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 15:52:36