chef の node.name が fqdn に設定している行を探る。

  • 6
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

以下の様なテンプレートを書いても、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] で取ってくる。
  • ohaiOhai::System インスタンス。
  • :fqdn ないし :hostname の解決は、ohai の hostname plugin で行っている。
  • knife solo-N foo.bar.com を指定してやると期待通りになる。 bash knife solo cook -N foo.bar.com foo.bar.com
    オプションつけ忘れなどで人的ミスにつながるよね、ということで、-N なしで実行したいよね、ということで、却下。
  • じゃどうする?... To be continued...