推荐以自动方式更新配置值的方法?

推荐以自动方式更新配置值的方法?

为了提供一些背景信息,我有一个构建服务器任务,需要更新配置文件(yaml 格式)字段值并推送到 repo 以供以后使用。我立即想到的是使用某种形式的正则表达式搜索/替换,但我想知道是否还有其他/更好的方法来实现这一点?

IE:

# Before
my_field : 2

# After
my_field : 3.1

当然,该文件将包含其他需要保持不变的字段值。

编辑

因此,根据 rbtux 的建议,我找到了一个可以解决我问题的 ruby​​ yaml 模块。它的工作原理如下:

源.yaml:

---
some_value: 1
my_value: 2
new_value: 3

替换.ruby:

require 'yaml'

hiera = YAML.load_file('source.yaml');

hiera['my_value'] = "other data"

File.open('source.yaml','r+') do |h| 
   h.write hiera.to_yaml
end

puts hiera['my_value'] # outputs my_value as 'other data' with other variables intact

您可以扩展此功能以将值作为参数传递。

答案1

最好的方法是选择提供 yaml 操作实用程序的脚本语言 perl、python、ruby 等。

如果文件足够简单,你可以使用 sed hack:

sed 's/^\(\s*my_field\s*:\s*\).*/\1new-value/' 

相关内容