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

如何从Ansible的SSH_CONNECTION变量中提取目标IP地址

从Ansible的SSH_CONNECTION事实中提取目标IP地址

我来帮你搞定这个IP提取的问题!你现在拿到的ansible_env.SSH_CONNECTION输出是空格分隔的四个字段,结构是[源IP] [源端口] [目标IP] [目标端口],咱们可以用Jinja2的字符串处理能力直接提取出你需要的192.168.231.91。

方法1:直接在Jinja2模板中处理

修改你的get-ip.j2模板,用split()方法分割字符串后取对应索引的元素:

nod= {{ ansible_env.SSH_CONNECTION.split()[2] }}
  • split()默认会按空格把字符串拆分成列表,这里得到的列表是['192.168.231.115', '55414', '192.168.231.91', '22']
  • 列表索引从0开始计数,[2]就对应第三个元素,也就是你要的目标IP。

方法2:先在Playbook中提取变量再传入模板

如果需要在多个地方使用这个IP,也可以先在Playbook里用set_fact把IP提取出来:

- name: 提取SSH目标IP
  set_fact:
    ssh_target_ip: "{{ ansible_env.SSH_CONNECTION.split()[2] }}"

然后在模板里直接引用这个变量:

nod= {{ ssh_target_ip }}

两种方法都能精准提取到你需要的192.168.231.91,选哪种就看你的实际场景需求啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:50:31