剛從 Amazon 轉移到 Joyent(不管為什麼)並設定我的 Chef 伺服器,我發現了以下問題:
如您所知,Chef 根據路由表設定 IP 位址。所以在我的例子中,從客戶端通知伺服器的IP是我的公共IP。
我有一個使用客戶端通知的 IP 和 FQDN 動態寫入 /etc/hosts 檔案的方法。問題是我需要使用私有IP,這樣所有到達本地機器的流量實際上都是本地的。
我嘗試node['network']['ipaddress_eth1']
在hosts.erb 模板檔案上使用,但不起作用。
我缺少什麼雲?還有其他方法可以使用我的私有 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位址歸功於歐海。