Ruby script to update yaml config value via command-line variable
# call script with:
# ruby scriptname.rb hieravar=value
require 'yaml'
# Get value to change hieravar=value
arg = ARGV[0].split('=')
field_name = arg[0]
field_value = arg[1]
# Dictionary
hiera = YAML.load_file('source.yaml')
# Debug
puts hiera.inspect
# Update value
hiera[field_name] = field_value
# Write new data to file
File.open('source.yaml','w') do |h|
h.write hiera.to_yaml
end
# Debug
puts hiera['my_value']