我正在尝试在 Chef 配方中使用 AWS OpsWorks 上实例的 IP,代码如下所示:
variables(
:db_host => (node[:scraper][:db_host] rescue nil),
:db_user => (node[:scraper][:db_user] rescue nil),
:db_pass => (node[:scraper][:db_pass] rescue nil),
:db_name => (node[:scraper][:db_name] rescue nil),
:beanstalk_host => (node[:opsworks][:layers][:admin][:instances].first[:private_ip])
)
但我得到一个TypeError - Symbol as array index
错误。
我不是 Ruby 开发人员,所以我对尝试什么有点迷茫。甚至文档也列出了该语法:
以下示例获取 HAProxy 层的第一个实例的私有 IP 地址:
node[:opsworks][:layers][:lb][:instances].first[:private_ip]
当我记录node[:opsworks][:layers][:admin][:instances].first
我得到的值时:
["admin1", {"elastic_ip"=>"54.221.245....