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

如何将Groovy列表转换为Ansible Inventory YAML格式?

解决方案:Groovy列表转Ansible Inventory YAML格式

方法1:手动字符串拼接(简单场景)

如果仅处理基础主机列表,直接通过字符串拼接即可快速生成目标格式:

def array = ['hostname1','hostname2','hostname3']

// 初始化YAML头部
def yamlContent = "---\nall:\n  hosts:\n"

// 遍历列表追加主机条目
array.each { host ->
    yamlContent += "     ${host}:\n"
}

// 输出最终内容
println yamlContent

运行后会直接输出符合要求的Ansible Inventory YAML文本。

方法2:使用SnakeYAML库生成(可靠方案)

若后续需要扩展Inventory结构(比如添加主机变量、子组等),推荐用SnakeYAML库生成标准YAML,避免手动拼接可能出现的格式错误。

先确保项目引入依赖(以Gradle为例,添加到build.gradle):

dependencies {
    implementation 'org.yaml:snakeyaml:2.2'
}

然后编写Groovy代码:

import org.yaml.snakeyaml.Yaml

def array = ['hostname1','hostname2','hostname3']

// 构建对应Inventory的Map结构
def inventoryMap = [
    all: [
        hosts: array.collectEntries { [(it): [:]] }
    ]
]

// 生成并输出YAML内容
def yaml = new Yaml()
println yaml.dump(inventoryMap)

该方案会自动生成标准格式的YAML,dump方法默认会添加---头部,主机条目也会按规范缩进排列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 19:52:05