ruby - 使用主机的环境变量作为 Chef 属性(vagrant)-如何管理密码?

标签 ruby chef-infra vagrant

在主机上,我有这样的东西:

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/

相关文章:

ruby - 在 Chef Recipe 中编写 Ruby 类

linux - Vagrant 添加到 PATH

javascript - 从 Rails Controller 调用 JS 方法

javascript - 如何在 Ruby On Rails 项目资源中使用 JavaScript 访问图像?

mysql - Ruby 和 mysql2 : Looping Until Connection is Error Free

ruby - 检查与 Chef 的联系

ruby-on-rails - ActiveAdmin 错误 : no superclass method `buttons'

linux - 使用 Chef 配方将多行附加到配置文件

ssh - 通过 SSH 连接到机器的私钥必须由运行 Vagrant 的用户拥有

vagrant - puppet 错误: Could not find class apt