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

如何将本地TXT中的密码解析至YAML文件以替代手动录入

刚好我之前也处理过类似的配置安全需求,用Ruby搭配Psych gem就能完美实现自动从本地TXT文件读取密码并更新YAML配置的功能,全程不用手动修改YAML内容,给你梳理个清晰的实现流程:

1. 准备密码文件

先把你的密码单独存到一个本地TXT文件里,比如路径设为 /home/#{ENV["USERNAME"]}/app_password.txt,文件里只放纯密码字符串,不要加引号或多余换行,确保文件权限设置为 chmod 600(防止其他用户读取,安全第一)。

2. 编写Ruby脚本实现自动替换

下面是完整的脚本代码,你可以直接调整路径后使用:

require 'psych'

# 1. 读取本地密码文件
password_file_path = "/home/#{ENV["USERNAME"]}/app_password.txt"
begin
  app_server_password = File.read(password_file_path).strip
rescue Errno::ENOENT
  puts "错误:密码文件不存在,请检查路径"
  exit 1
end

# 2. 加载原YAML配置文件
yaml_file_path = "/devl/galaxy/common/edwEnvironmentConfig.yml"
config = Psych.load_file(yaml_file_path)

# 3. 更新配置中的密码字段
config["app_server_password"] = app_server_password

# 可选:顺便替换其他环境变量(比如$USERNAME$)
config["app_server_username"] = ENV["USERNAME"]
config["environment_profile"] = "/home/#{ENV["USERNAME"]}/eproduct/difenv"
config["teradata_logon_file"] = "/home/#{ENV["USERNAME"]}/.priv/devl/.td_connection"
config["project_root_directory"] = "/home/#{ENV["USERNAME"]}/eproduct/"

# 4. 将修改后的配置写回YAML文件
File.write(yaml_file_path, Psych.dump(config, indentation: 2)) # 缩进2格保持原格式风格

puts "密码已成功更新到YAML配置文件!"
3. 关键注意事项
  • 权限安全:一定要给密码文件设置严格的权限(chmod 600),避免敏感信息泄露
  • 备份原文件:首次运行脚本前,建议先备份你的YAML配置文件,防止意外修改
  • 异常处理:脚本里加了文件不存在的异常捕获,你可以根据需要扩展其他错误处理逻辑
  • 格式保持:Psych.dump 时指定 indentation: 2 可以让生成的YAML和原格式保持一致,看起来更整洁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:55:29