chefはbootstrapなりconvergeしたときにレシピの情報やohaiで取得した情報をnodesファイルに保存してくれるのだけど、dockerを起動しているnodeだとdocker0やveth-xxxxのようなdocker起動ごとに変わるifも学習したりして、都度差分がでて、git管理してるとうざかったりする。
そういうときは .knife.rb
に下記のようにwhitelistを書いてやるといい。(blacklistでも可能)
knife[:automatic_attribute_whitelist] = %w(
virtualization/
fqdn/
os/
os_version/
hostname
ipaddress/
roles/
recipes/
ipaddress/
platform/
platform_version/
chef_packages/
network/interfaces/lo # こんな感じで必要なIFだけ書く
network/interfaces/ens3
)
こうするとchefをapplyするごとにnodesに不要な差分が出なくて便利。