如何使用 groovy/pipeline 脚本将新标签附加到 yaml 文件中的现有标签列表
How to append the new tag to the list of existing tag in the yaml file using groovy/pipeline script
我有一个 yaml 文件 (config.yaml) tags/structure 类似于下面提到的内容。我需要将新租户 (tenant3) 添加到现有租户列表中。如何使用 pipeline/groovy 脚本实现它?任何 help/lead 将不胜感激。
consumer_services:
- security
- token
id: 10000
tenants:
tenant_1:
state: all
web_token: true
cluster_pairs:
- cluster1
datacenter: local
client: CLIENT_TEST
tenant_2:
state: all
web_token: true
cluster_pairs:
- cluster2
datacenter: local
client: CLIENT_TEST
base_network:
subnets:
- 10.160.10.10
- 10.179.1.09
我认为你需要做这样的事情:
@Grab('org.yaml:snakeyaml:1.17')
import org.yaml.snakeyaml.DumperOptions
import org.yaml.snakeyaml.Yaml
def options = new DumperOptions()
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK)
Yaml yaml = new Yaml(options)
// load existing structure
def structure = yaml.load(new File("original.yml").text)
// modify the structure
structure.tenants.tenant_3 =
[
state : 'all',
web_token : true,
cluster_pairs: ['cluster3'],
datacenter : 'local',
client : 'CLIENT_TEST'
]
// save to the new file
new File("modified.yml").write(yaml.dump(structure))
所以步骤是:
- 将文件中的数据加载到内存中
- 按照您喜欢的方式修改结构
- 将修改后的结构存储到文件
希望对您有所帮助。
我有一个 yaml 文件 (config.yaml) tags/structure 类似于下面提到的内容。我需要将新租户 (tenant3) 添加到现有租户列表中。如何使用 pipeline/groovy 脚本实现它?任何 help/lead 将不胜感激。
consumer_services:
- security
- token
id: 10000
tenants:
tenant_1:
state: all
web_token: true
cluster_pairs:
- cluster1
datacenter: local
client: CLIENT_TEST
tenant_2:
state: all
web_token: true
cluster_pairs:
- cluster2
datacenter: local
client: CLIENT_TEST
base_network:
subnets:
- 10.160.10.10
- 10.179.1.09
我认为你需要做这样的事情:
@Grab('org.yaml:snakeyaml:1.17')
import org.yaml.snakeyaml.DumperOptions
import org.yaml.snakeyaml.Yaml
def options = new DumperOptions()
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK)
Yaml yaml = new Yaml(options)
// load existing structure
def structure = yaml.load(new File("original.yml").text)
// modify the structure
structure.tenants.tenant_3 =
[
state : 'all',
web_token : true,
cluster_pairs: ['cluster3'],
datacenter : 'local',
client : 'CLIENT_TEST'
]
// save to the new file
new File("modified.yml").write(yaml.dump(structure))
所以步骤是:
- 将文件中的数据加载到内存中
- 按照您喜欢的方式修改结构
- 将修改后的结构存储到文件
希望对您有所帮助。