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

Ansible 2.3如何修改join逻辑生成多端口主机池配置串

Ansible 2.3 主机池多端口配置修改方案

原配置仅为每个主机拼接了2100单端口,未做多端口展开,无法生成双端口条目。直接替换_pool_config定义为以下内容即可,完全兼容Ansible 2.3版本:

_pool_config: "{{ (environment_hosts | default(['localhost']) | product([2100,2200]) | map('join', ':') | list) | join(',') }}{% if ssl_enabled | bool %},sslSettings=TLS{% endif %}"

实现逻辑

  • 用jinja2原生product过滤器对主机列表、端口列表[2100,2200]做笛卡尔积,自动按顺序生成(server1,2100)、(server1,2200)、(server2,2100)、(server2,2200)格式的元组,顺序完全匹配预期
  • 通过map('join', ':')将每个元组拼接为host:port格式字符串,转列表后用逗号拼接所有条目
  • 完整保留原有逻辑:未定义environment_hosts时默认使用localhost,ssl_enabled为true时自动在末尾追加,sslSettings=TLS

效果验证

当environment_hosts取值为['server1','server2']、ssl_enabled为false时,渲染结果为:

server1:2100,server1:2200,server2:2100,server2:2200

如果后续需要新增其他监听端口,只需要修改product过滤器里的端口列表即可,不需要调整其他拼接逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 13:03:19