Я пытаюсь использовать IP-адрес экземпляра на AWS OpsWorks в рецепте Chef, код выглядит так:
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, поэтому немного не знаю, что попробовать. Даже в документах указан этот синтаксис:
Следующий пример получает частный IP-адрес первого экземпляра уровня HAProxy:
node[:opsworks][:layers][:lb][:instances].first[:private_ip]
Когда я регистрирую значение node[:opsworks][:layers][:admin][:instances].first
, я получаю:
["admin1", {"elastic_ip"=>"54.221.245....