Amazon から Joyent に移行したばかりで (理由は問いません)、Chef Server をセットアップしたところ、次の問題が見つかりました。
ご存知のとおり、Chef はルート テーブルに従って IP アドレスを設定します。そのため、私の場合、クライアントからサーバーに通知される IP はパブリック IP です。
クライアントから通知された IP と FQDN を使用して、/etc/hosts ファイルを動的に書き込む方法があります。問題は、プライベート IP を使用する必要があるため、ローカル マシンに到達するすべてのトラフィックが実際にローカルになることです。
hosts.erb テンプレート ファイルで使用してみましたnode['network']['ipaddress_eth1']
が、動作しません。
どのクラウドが欠けているのでしょうか? プライベート IP を使用してホスト ファイルを書き込む他の方法はありますか?
ありがとう
アップデート
実は、私が探しているものを見つける方法があります。シェフ:
chef > asdf = node['network']['interfaces']['eth1']['addresses'].keys.select { |a| a[/\A\d+\.\d+\.\d+\.\d+\Z/] }.first
これにより、eth1 の IP アドレスが返されます。
答え1
この問題を解決するために、私はipaddr_extensions ジェムそして追加するプライベートIPアドレスohai に帰属します。