Vagrantfileのchef.jsonで定義した値をtemplateで使うときの注意点
chef.json = {"hostname" => "abc.example.com",}
と定義して、その値をテンプレートファイルから(templates/default/network.erb)
NETWORKING=yes
HOSTNAME=<%= node["hostname"] %>
と参照したかったのですが、なぜか反映されませんでした。chef.jsonで定義したhostnameの値ではなく現在のサーバのhostname値がそのままテンプレートファイルに埋め込まれてしまっていました。(日本語難しい・・・)
たぶんohaiが収集したサーバの情報がnode["hostname"]に設定されて、それがそのまま使われているんではないかと思います。(このあたりよくわかってない)
対処法
キー名を"myhostname"みたいにしたらうまくいきました。Vagrantfile
chef.json = {"myhostname" => "abc.example.com",}
templates/default/network.erb
NETWORKING=yes
HOSTNAME=<%= node["myhostname"] %>
Chef/VagrantのAttribute周りはなかなか難しいですね。