在主机上,我有这样的东西:
export SOME_USER=foo
export SOME_PASSWORD=password
我想将一些主机的环境变量转换为attributes/default.rb中的属性:
user = ENV["SOME_USER"]
password = ENV["SOME_PASSWORD"]
node.default["some"]["url"] = "http://#{user}:#{password} ..."
但是,这里的 ENV
是客户操作系统的 ENV
。我可以在属性文件中访问主机的环境吗?
更广泛地说,在 Chef 中定义用户/密码而不在任何地方检查密码的首选方法是什么?
最佳答案
做到这一点的最佳方法是使用加密数据包。
基本上,您将值存储在 Chef 服务器上,并使用 key 加密。您将此 key 提供给需要这些值的节点,它们可以下载并解密这些值,从而获取密码。这不仅可以防止检查纯文本密码,还可以确保密码在传输过程中得到加密。
了解更多信息:http://wiki.opscode.com/display/chef/Encrypted+Data+Bags
关于ruby - 使用主机的环境变量作为 Chef 属性(vagrant)-如何管理密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14076029/