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

Ansible如何遍历列表并拆分,将结果赋值给新列表

Ansible 域名列表拆分解决方案

生成一级域名前缀列表

使用Ansible的map和split过滤器,对每个域名按.分割后取第一个元素,最终转换为列表:

prefixes: "{{ sites | map('split', '.') | map('first') | list }}"

执行后会得到:['x', 'y', 'z']

生成剩余域名部分的单元素列表

由于所有域名的剩余后缀一致,只需取第一个域名拆分后去掉前缀部分,再拼接为字符串并放入列表:

domain_suffixes: "{{ [ sites[0] | split('.') | slice(1) | flatten | join('.') ] }}"

执行后会得到:['domain.com.ex']

完整示例Playbook

---
- name: 拆分域名变量
  hosts: localhost
  vars:
    sites:
      - x.domain.com.ex
      - y.domain.com.ex
      - z.domain.com.ex
    prefixes: "{{ sites | map('split', '.') | map('first') | list }}"
    domain_suffixes: "{{ [ sites[0] | split('.') | slice(1) | flatten | join('.') ] }}"
  tasks:
    - name: 输出前缀列表
      debug:
        var: prefixes
    - name: 输出域名后缀列表
      debug:
        var: domain_suffixes

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:35:21