以下の様なテンプレートを書いても、CNAME で振っているサーバーだと、期待した出力にならない。
NETWORKING=yes
HOSTNAME=<%= node.name %>
NOZEROCONF=yes
NETWORKING_IPV6=no
IPV6INIT=no
IPV6_ROUTER=no
IPV6_AUTOCONF=no
IPV6FORWARDING=no
IPV6TO4INIT=no
IPV6_CONTROL_RADVD=no
DNS で CNAME foo.bar.com => ec2-xxxx.amazonaws.com
としている。
nodes/foo.bar.com.json
だった場合、node.name == foo.bar.com
であってほしいのに対して、出力は ec2-xxxx.amazonaws.com
-
node.name
を解決しているのはChef::Client
: Chef::Client#node_name -
Chef::Config[: node_name]
がなければ、ohai[:fqdn] || ohai[:hostname]
で取ってくる。 -
ohai
は Ohai::System インスタンス。 -
:fqdn
ないし:hostname
の解決は、ohai の hostname plugin で行っている。 -
knife solo
で-N foo.bar.com
を指定してやると期待通りになる。オプションつけ忘れなどで人的ミスにつながるよね、ということで、knife solo cook -N foo.bar.com foo.bar.com
-N
なしで実行したいよね、ということで、却下。 - じゃどうする?... To be continued...