如何使用 Chef 配方通过读取 Shell 脚本来设置环境变量?

How can you use a Chef recipe to set an environment variable by reading from Shell script?

我需要从 Shell 脚本中读取凭据并将其设置为环境变量。

chef 中的上一个代码

ENV['password'] = '123'

现在我正在尝试使用下面的代码,但它不起作用。

bash 'set_password' do
  code <<-EOH
          password=$(sh /opt/get_password.sh root)
      EOH
  guard_interpreter :bash
  environment ({ 'password' => $password })
end unless node.attribute?('ec2')

如果您想将 get_password.sh 脚本的输出 (stdout) 放入环境变量中,您可以简单地执行以下操作:

ENV['password'] = `/opt/get_password.sh root`

那么这个环境变量就可以在recipe的其他地方引用了