1

AWS OpsWorks のインスタンスの IP を 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 開発者ではないので、何を試せばよいか少し迷っています。ドキュメントにもその構文がリストされています:

次の例では、HAProxy レイヤーの最初のインスタンスのプライベート IP アドレスを取得します。 node[:opsworks][:layers][:lb][:instances].first[:private_ip]

の値をログに記録すると、次のnode[:opsworks][:layers][:admin][:instances].firstようになります。

["admin1", {"elastic_ip"=>"54.221.245....

4

1 に答える 1